高并发中间件5-Activemq高可用集群方案
Master-slave模式
Master-Slave集群由至少3个节点组成,一个Master节点,其他为Slave节点。只有Master节点对外提供服务,Slave节点处于等待状态。当主节点宕机后,从节点会推举出一个节点出来成为新的Master节点,继续提供服务。
Master-Slave模式的部署方式,主要分为三种:
Shared Filesystem Master-Slave方式,如KahaDB,应用灵活、高效且安全。
Shared Database Master-Slave方式,基于共享数据库,跟第一种类似,性能会受限于数据库。
Replicated LevelDB Store方式,基于zookeeper + leveldb。是生产环境常用的方案。
Broker-Cluster模式
Broker-Cluster部署方式中,各个broker通过网络互相连接,自动分发调用端请求,从而实现集群的负载均衡。Broker-Cluster集群连接到网络代理的方式,主要分为静态网络代理、动态网络代理,不同的网络代理方式也对应了不同的集群部署方式:
static Broker-Cluster
Dynamic Broker-Cluster
在实际应用场景中static Broker-Cluster被大量使用。
Master-Slave集群的优点是可以解决多服务热备的高可用问题,但缺点是无法解决负载均衡和分布式的问题。Broker-Cluster集群的优点是可以解决负载均衡和分布式的问题,但不支持高可用。
因此,把Master-Slave和Broker-Cluster两者相结合,就可以得到一个完美的解决方案:即又可以做到集群负载均衡又可以做到任何一个broker如果发生宕机,也不会影响提供服务,节点消息也不会“丢失”。