资讯专栏INFORMATION COLUMN

ActiveMQ+ZooKeeper 集群整合

xiangchaobin / 1057人阅读

摘要:要想保证负载均衡得再结合部署方案,配置网络连接器。编码时,端消费者通过协议来连接集群。一服务器配置集群集群保证本身的高可用性。只需使用进行配置即可,默认端口为。

前言

本案例使用的是真集群方式,准备三台主机,IP分别为192.168.100.142、192.168.100.143、192.168.100.144

伪集群部署请看:ActiveMQ+ZooKeeper 伪集群整合
如果需要了解ActiveMQ集群部署的整体概念,可以参考我这篇文章:ActiveMQ集群整体认识

原理简介:
一般在部署ActiveMQ集群的时候,更倾向于使用基于ZooKeeper的Replicated LevelDB Store方式,该方式是Master Slave部署方案的其中一种策略,也是在多台主机实现ActiveMQ集群的主流部署方式。 此教程只保证了高可用性。要想保证负载均衡得再结合Broker Clusters 部署方案,配置网络连接器。

工作流程:
在ZooKeeper中管理多个Broker节点,根据 Master选举策略让其中一个 Broker选举为Master(只有Master才具备对外提供服务的能力),剩下Broker为slave。
编码时,client端(消费者)通过failover协议来连接ActiveMQ集群。

一、服务器配置 1. ZooKeeper集群

ZooKeeper集群保证ZooKeeper本身的高可用性。

1.1 修改ZK配置文件conf/zoo.cfg
主机IP 服务端口(默认) 集群通信端口 节点目录/opt/下
192.168.100.142 2181 2888:3888 zookeeper
192.168.100.143 2181 2888:3888 zookeeper
192.168.100.144 2181 2888:3888 zookeeper
集群通信端口:第一个端口是master和slave之间的通信端口,默认是2888;第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888。

在3台主机上都安装zookeeper服务,/opt/zookeeper,并分别配置它们的文件conf/zoo.cfg:

主机1(192.168.100.142)
/opt/zookeeper/conf/zoo.cfg:

# zookeeper的数据存储和日志存储目录(如果目录不存在就新建)
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/log

# zk集群之间的通信地址
server.1=192.168.100.142:2888:3888
server.2=192.168.100.143:2888:3888
server.3=192.168.100.144:2888:3888

创建/opt/zookeeper/data/myid文件,填入数字1:

# 由于该主机1(192.168.100.142)是server.1,所以在myid中设置数字1
$ vim /opt/zookeeper/data/myid

主机2(192.168.100.143)
/opt/zookeeper/conf/zoo.cfg:

dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/log

server.1=192.168.100.142:2888:3888
server.2=192.168.100.143:2888:3888
server.3=192.168.100.144:2888:3888

创建/opt/zookeeper/data/myid文件,填入数字2:

# 由于该主机2(192.168.100.143)是server.2,所以在myid中设置数字2
$ vim /opt/zookeeper/data/myid

主机3(192.168.100.143)
/opt/zookeeper/conf/zoo.cfg:

dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/log

server.1=192.168.100.142:2888:3888
server.2=192.168.100.143:2888:3888
server.3=192.168.100.144:2888:3888

创建/opt/zookeeper/data/myid文件,填入数字3:

# 由于该主机3(192.168.100.144)是server.3,所以在myid中设置数字3
$ vim /opt/zookeeper/data/myid

1.2 分别启动zookeeper服务
$ /opt/zookeeper/bin/zkServer.sh start # 启动zk服务
$ /opt/zookeeper/bin/zkServer.sh status # 查看zk服务状态
2. ActiveMQ集群 2.1 修改ActiveMQ配置文件conf/activemq.xmlconf/jetty.xml
主机IP 服务端口(默认) 复制协议端口(动态) jetty控制台端口(默认) 节点目录/opt/下
192.168.100.142 61616 tcp://0.0.0.0:0 8161 activemq/node1
192.168.100.143 61616 tcp://0.0.0.0:0 8161 activemq/node2
192.168.100.144 61616 tcp://0.0.0.0:0 8161 activemq/node3

在3台主机上都安装activemq 服务,/opt/activemq,并分别配置它们的文件conf/activemq.xml和conf/jetty.xml:

主机1(192.168.100.142)
/opt/activemq/conf/activemq.xml:

  
  
      

/opt/activemq/conf/jetty.xml:


    
     

主机2(192.168.100.143)
/opt/activemq/conf/activemq.xml:

  
      

/opt/activemq/conf/jetty.xml:


    
     

主机3(192.168.100.144)
/opt/activemq/conf/activemq.xml:

  
      

/opt/activemq/conf/jetty.xml:


    
     

2.2 依次启动activemq服务
$ /opt/activemq/bin/activemq start # 启动activemq服务

$ ps -ef|grep activemq # 检查进程是否运行,即activemq是否启动成功
$ netstat -anp|grep 61616 # 查看服务端口61616,监听情况
三、Client使用

该zookeeper+activemq的集群Master Slave部署方案,能够提供(3-1)/2的容错率,即3台服务器允许宕机一台,而不影响整个集群的对外提供服务。

编写代码连接时使用failover策略:

String url = failover:(tcp://192.168.100.142:61616,tcp://192.168.100.143:61616,tcp://192.168.100.144:61616)?initialReconnectDelay=1000

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69227.html

相关文章

  • ActiveMQ+ZooKeeper集群整合

    摘要:前言本案例使用的是伪集群方式,即在一台主机上部署个服务端口不同个服务端口不同。要想保证负载均衡得再结合部署方案,配置网络连接器。编码时,端消费者通过协议来连接集群。只需使用进行配置即可,默认端口为。 前言 本案例使用的是伪集群方式,即在一台主机上部署3个activemq服务(端口不同)+3个zookeeper服务(端口不同)。 真集群部署请看:ActiveMQ+ZooKeeper集群整...

    Honwhy 评论0 收藏0
  • ActiveMQ集群整体认识

    摘要:二集群部署方式集群的部署方式主要有下面种模式实现负载均衡,多个之间同步消息,已达到服务器负载的可能。默认为,单位为毫秒,表示一次尝试重连之间等待的时间。如果宕机,集群退化成标准集群,只是了失去负载均衡能力。 前言 最终需要掌握 Replicated LevelDB Store部署方式,这种部署方式是基于ZooKeeper的。 集群分为两种方式:1.伪集群:集群节点都搭在一台机器上2....

    sixgo 评论0 收藏0
  • HotFrameLearning 热门框架学习(目录)

    摘要:热门框架学习目录项目介绍专辑栏目一简介环境安装配置客户端连接常用命令集群搭建分布式锁二简介环境安装配置基本特性启动过程分析选举过程主从数据同步过程分析集群搭建分布式锁三简介环境安装配置基本特性基本概念和模型收发消息案例架构初识收发消息原 HotFrameLearning 热门框架学习(目录) - I、项目介绍 - II、专辑栏目 一、Redis Redis 简介 Redis 环境安装...

    lakeside 评论0 收藏0
  • 消息中间件——RabbitMQ(二)各大主流消息中间件综合对比介绍!

    摘要:主流消息中间件介绍是由出品,是一个完全支持和规范的实现。主流消息中间件介绍是阿里开源的消息中间件,目前也已经孵化为顶级项目。 showImg(https://img-blog.csdnimg.cn/20190509221741422.gif);showImg(https://img-blog.csdnimg.cn/20190718204938932.png?x-oss-process=...

    hiyang 评论0 收藏0

发表评论

0条评论

xiangchaobin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<