是什么?
集群:同一个业务,部署在多个服务器上
和分布式的区别?
分布式:一个业务分拆多个子业务,部署在不同的服务器上
##它的出现解决什么问题?
高可用、高吞吐、高性能、可拓展、负载均衡、线性扩容、容错功能强…哪些服务器需要做集群呢?先看一张未考虑集群的、简单的分布式系统的网络拓扑图:网页端可以看原图
面试能画画这个图,还是很6的。
通过上图,我们可以梳理出哪些服务器需要做集群处理了:
服务 | 对应集群 | 备注 |
---|---|---|
nainx高可用 | nginx集群 | Nginx+keepalived,高可用 |
web服务、业务模块服务 | tomcat集群 | Nginx实现tomcat集群,负载均衡 |
注册中心(服务dubbo) | zookeeper集群 | 一个leader,多个follower组成的集群 |
消息中心 | activeMq集群 | 取消了传统的Master-Slave方式,增加了基于ZooKeeper+LevelDB的Master-Slave实现方式 |
图片服务 | fastDFS集群 | Tracker Server、Storage Server |
缓存服务 | redis集群 | Redis Cluster |
搜素服务 | solr集群 | SolrCloud |
数据库服务 | mysql集群 | mycat |
邮件服务 | postFix集群 | 略略 |
单点登录 | cas集群 | session共享问题 |
各种集群的实现以及注意点
后续可能补上,也可以自行百度。