在云计算,大数据,互联网等领域,都存在集群的概念,那么如何进行集群管理呢?虽然各有各的实现方式,但是思想都一样,通过leader管理一个集群,有自己的选举算法。而且集群中相似功能的组件也很多,可供用户任意选取。
集群管理:zookeeper
消息队列:zeromq
缓存:memcached,redis
数据库:mysql,postgresql
NoSQL:mongodb(其实memcached和redis也是NoSQL)
rabbitmq和zeromq相比,zeromq不支持持久化,但是使用非常简单,就是一个库,而rabbitmq支持持久化,但是需要一个server进行消息路由。
memcached不支持集群,依赖于zookeeper管理集群,仅提供缓存功能,集群内的缓存数据不需要同步。redis支持集群,数据类型丰富,可以实现一主多备的读写分离,有自己的选举算法。
nginx,haproxy,这两个都是优秀的反向代理工具,nginx不但可以提供LB功能,还可以提供web服务器功能。nginx的使用和配置更容易上手,但是转发效率不如haproxy。
一般需要购买商用CDN即可,在形成一定规模后,可以考虑自己的CND。目前除了BAT之外,很少有自己开发自己的CDN服务的。因为大量的机房建立,也是需要很多money的,非普通企业可以负担的的。
购买防火墙设备,及配置iptables
高可用方案有很多,比如:coresync+pacemaker,keepalived等,keepalived比较容易上手,但功能较前者略差一些。数据同步一般使用drdb。
如果业务过于复杂,比如大型电商系统,那么每个业务线都做分布式,比如:订单系统,用户管理系统,都要做成分布式可扩容的集群。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。