高可用的方案
上一节中说的networkConnector是一个高性能的方案,但并不是一个高可用的方案。
原因是在networkConnector这种方案下,broker节点有消费者,消息才会转移到该broker,否则只会停留在生产者对应的某个broker。若这个broker挂掉了,就不能保证消息即时消费。
高可用的方案(zookeeper+activemq)2n+1
1,前置条件:
2,搭建activemq集成到zk。
准备3台服务器(254.128,254.132,254.134)
取消之前配置的静态网络连接
搭建zk分布式,这里不详细展开。leader(128) ,follower(132),observer(134)
将activemq的安装包上传到各个服务器。
修改activemq的配置conf/activemq.xml文件
directory="$/levelDB"
replicas="2"
bind="tcp://0.0.0.0:61615"
zkAddress="192.168.254.128,192.168.254.134,192.168.254.132"
hostname="192.168.254.132"
zkPath="/activemq/leveldb"/>
顺序启动各个服务器上activemq,然后打开zk的客户端查看是否存在节点(都是临时节点,ephemeralOwner有sessionId值)。
此时查看activemq的master节点,根据zk的节点可以判断000000000节点对应的是mq的master节点,访问:http://192.168.254.128:8161(其他节点是访问不到的。只要master挂掉后,才会选取新的节点对外提供服务。)
停止128服务器后,选举132为master
其他的主从方案
1,jdbc存储(基于LOCK锁表的操作来实现master/slave)
2,基于共享文件系统的主从方案(挂载网络磁盘,将数据文件保存到指定磁盘上即可完成master/slave模式)
主备
监控 - hawtio 略
领取专属 10元无门槛券
私享最新 技术干货