Activemq的高可用—基于Zookeeper的主从集群
浏览量:59
一、Activemq介绍
1.1 Activemq简介
Activemq 是Apache出品,最流行的,能力强劲的开源消息总线。完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。
1.2 Activemq特性
多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务);
对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性;
通过常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中通过JCA 1.5 resourceadaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE1.4商业服务器上支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
支持通过JDBC和journal提供高速的消息持久化
从设计上保证了高性能的集群,客户端-服务器,点对点
支持Ajax
支持与Axis的整合 可以很容易得调用内嵌JMS provider,进行测试
二、环境部署演示
2.1 主机规划

2.2 搭建zookeeper集群(略)
zk集群地址:
zkAddress="192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181"
2.3 搭建Activemq集群
2.3.1 下载Activemq安装包
cd /data wget https://mirrors.tuna.tsinghua.edu.cn/apache/activemq/5.18.3/apache-activemq-5.18.3-bin.tar.gz
2.3.2 解压
tar xf apache-activemq-5.18.3-bin.tar.gz -C /data/ mv apache-activemq-5.18.3 activemq cd activemq #下载jdk13并解压 https://download.java.net/java/GA/jdk13/5b8a42f3905b406298b72d750b6919f6/33/GPL/openjdk-13_linux-x64_bin.tar.gz 修改 env,vi /data/activemq/bin/env ,增加如下配置 JAVA_HOME="/data/activemq/jdk-13" CLASSPATH=.:$JAVA_HOME/lib PATH=$PATH:$JAVA_HOME/bin
2.3.3 修改控制台的登录用户名密码
cd /data/activemq/conf/ vi jetty-realm.properties #用户名:密码,权限 admin: admin,admin user: user,user operation: Admin@123,admin
2.3.4 配置策安全略,禁止无关人员访问发送接收信息
#新增一个插件,在<broker>节点里面<systemUsage>节点前面添加
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/>
</users>
</simpleAuthenticationPlugin>
</plugins>2.3.5 修改三台服务器管控台端口。默认为8161。
vi /data/activemq/conf/jetty.xml



2.3.5 集群持久化配置
注意:3个activemq的brokerName必须相同,否则不能加入集群。

<persistenceAdapter>
<!--<kahaDB directory="${activemq.data}/kahadb"/>-->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62621"
zkAddress="192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181"
zkPassword=""
hostname="本机IP"
zkPath="/activemq/leveldb-stores" />
</persistenceAdapter>2.3.6 启动
/data/activemq/bin/activemq start
2.4 集群管理
(1)通过使用ZooInspector工具查看zookeeper集群情况
(2)http://192.168.1.10:8161/admin 默认用户名与口令为admin登录ActiveMQ管理端
通过以上步骤,便可以实现Activemq的主从集群,当Master主节点出现故障宕机后,Slave从节点便会通过投票机制,票数最多的Slave从节点升级为新的Master主节点,用来提供服务。当故障节点恢复之后,会重新加入到集群中并连接 Master 进入Slave 模式。
客户端配置:failover:(tcp:192.168.1.10:61616,192.168.1.11:61616,192.168.1.12:61616)?randomize=false

神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。