温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

分布式系统设计基础知识

发布时间:2020-06-14 13:37:21 来源:网络 阅读:136 作者:Lee_1985 栏目:软件技术

在云计算,大数据,互联网等领域,都存在集群的概念,那么如何进行集群管理呢?虽然各有各的实现方式,但是思想都一样,通过leader管理一个集群,有自己的选举算法。而且集群中相似功能的组件也很多,可供用户任意选取。

我常用的一些组件

集群管理:zookeeper

消息队列:zeromq

缓存:memcached,redis

数据库:mysql,postgresql

NoSQLmongodb(其实memcached和redis也是NoSQL)

消息队列

rabbitmq和zeromq相比,zeromq不支持持久化,但是使用非常简单,就是一个库,而rabbitmq支持持久化,但是需要一个server进行消息路由。

缓存

memcached不支持集群,依赖于zookeeper管理集群,仅提供缓存功能,集群内的缓存数据不需要同步。redis支持集群,数据类型丰富,可以实现一主多备的读写分离,有自己的选举算法。

反向代理+负载均衡

nginx,haproxy,这两个都是优秀的反向代理工具,nginx不但可以提供LB功能,还可以提供web服务器功能。nginx的使用和配置更容易上手,但是转发效率不如haproxy。

CDN服务

一般需要购买商用CDN即可,在形成一定规模后,可以考虑自己的CND。目前除了BAT之外,很少有自己开发自己的CDN服务的。因为大量的机房建立,也是需要很多money的,非普通企业可以负担的的。

防火墙

购买防火墙设备,及配置iptables

高可用

高可用方案有很多,比如:coresync+pacemaker,keepalived等,keepalived比较容易上手,但功能较前者略差一些。数据同步一般使用drdb。

业务拆分

如果业务过于复杂,比如大型电商系统,那么每个业务线都做分布式,比如:订单系统,用户管理系统,都要做成分布式可扩容的集群。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI