在ActiveMQ 5.9中,引入了复制LevelDB存储。它处理使用Apache ZooKeeper从一组配置为复制单个LevelDB存储的代理节点中选择一个主服务器。然后将所有从属LevelDB存储与主数据库同步,通过将所有更新复制到主数据库,从而使它们保持最新状态。这可能会成为首选的主从配置。
主/从简介
以下是可用的不同类型的主/从配置:
如果使用的是SAN等共享网络文件系统,则建议使用Shared File System Master Slave。如果您乐于放弃高性能期刊,并使用纯JDBC作为持久性引擎,则应该改用JDBC Master Slave。对于那些愿意尝试新技术的人,“ 复制LevelDB存储”提供了类似于SAN解决方案的速度,而无需设置高可用性共享文件系统。
原理
伪集群
zookeeper集群搭建参考另一博客:https://blog.csdn.net/qq_39720208/article/details/102891587
创建mq三个节点
修改控制台端口
linux域名映射
修改三个节点的brokerName一致
持久化配置
参考官网配置
<broker brokerName="broker" ... >
...
<persistenceAdapter>
<replicatedLevelDB
directory="activemq-data"
replicas="3"
bind="tcp://0.0.0.0:0"
zkAddress="zoo1.example.org:2181,zoo2.example.org:2181,zoo3.example.org:2181"
zkPassword="password"
zkPath="/activemq/leveldb-stores"
hostname="broker1.example.org"
/>
</persistenceAdapter>
...
</broker>
依次修改消息端口
1节点默认
创建zookeeper集群shell脚本
mq集群启动shell脚本
查看zookeeper启动
客户端启动成功查看mq是否在zookeeper中
查看master
说明只能访问主节点 ,控制台输入ip:8161能进行访问,其他两个slave节点无法访问控制台
代码测试
说明消息发送到主节点