基于zookeeper+activemq搭建消息队列

使用zookeeper+activemq搭建实现高可用负载均衡

思路
在电脑上搭建zookeeper集群 搭建activemq集群
电脑A (192.168.158.143)
电脑B(192.168.158.135)
环境为centos7最小安装
操作过程中安装的软件列表
必需的

jdk1.8

非必需的(如果未安装请用其他方式代替)

**关闭防火墙(因为是单机所以不需要关闭,如果是多台机器记得关闭!!!!!!!!)**
vim  //安装命令//  yum install vim -y
wget 					yum install wget -y
nc						yum install nc -y
							yum install telnet.x86_64

一 安装jdk
centos7下安装jdk1.8

二 搭建zookeeper集群
进入/usr/local/

cd /usr/local

创建文件夹zookeeper

mkdir -p zookeeper

进入zookeeper 文件夹

cd zookeeper

上传zookeeper 压缩包或者使用wget 下载

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

在这里插入图片描述
解压 安装包

tar -zxvf zookeeper-3.4.13.tar.gz

复制三份(用来创建zookeeper的三个节点)

cp -r zookeeper-3.4.13 zookeeper-3.4.13-node1
cp -r zookeeper-3.4.13 zookeeper-3.4.13-node2
cp -r zookeeper-3.4.13 zookeeper-3.4.13-node3

复制之后的目录如下
在这里插入图片描述
进入node1节点的配置文件 复制zoo_sample.cfg 为zoo.cfg

cd zookeeper-3.4.13-node1/conf
cp zoo_sample.cfg zoo.cfg

编辑zoo.cfg文件 添加dataDir 和server.x属性 如下图

vim zoo.cfg

在这里插入图片描述

这是配置文件的详细介绍===
其中iddir 文件夹需要自己创建 (因为对于集群来说每一个都需要一个id所以我建立在该软件包的根路径)
clientPort 我分别设置的是2181 2182 2183

=============================================
(1)tickTime
默认情况下最小会话超时时间

(2)initLimit
这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过tickTime个心跳的时间长度后 Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败

(3)syncLimit
这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度

(4)dataDir
dataDir是存放内存数据库快照的位置(myid文件于是配置在该目录下)

(5)clientPort 客户端端口号

(6)server.A=B:C:D
其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

下面的通过示例验证为什么单机上面部署伪集群C和D不能一样
现在 设置的C和D是一样的 结果如下图
在这里插入图片描述
发现停止了leader之后全部都停止了
个人理解
端口2888,3888被leader抢用了 其他的follower无法使用 导致无法进行选举和内部通讯

所以修改C D为下图
在这里插入图片描述

=============================================
创建iddir文件夹 创建myid文件(和A相同)

mkdir -p  /usr/local/zookeeper/zookeeper-3.4.13-node1/iddir
cd iddir
vim myid          //添加1(添加的数为server.x 的x值  在1~255之间)

在这里插入图片描述

同理创建zookeeper第二个节点
进入node2节点的配置文件 复制zoo_sample.cfg 为zoo.cfg 添加myid文件输入2
同理创建zookeeper第三个节点
进入node3节点的配置文件 复制zoo_sample.cfg 为zoo.cfg 添加myid文件输入3

进入软件包的bin路径下 依次启动zookeeper服务

cd /usr/local/zookeeper/zookeeper-3.4.13-node1/bin
./zkServer.sh start
cd /usr/local/zookeeper/zookeeper-3.4.13-node2/bin
./zkServer.sh start
cd /usr/local/zookeeper/zookeeper-3.4.13-node3/bin
./zkServer.sh start

可以在各自的bin路径下查看zookeeper.out文件(日志文件)

自此zookeeper集群搭建完毕

关于zookeeper的一些命令

1. 可以通过命令:echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader
2. 使用echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。
3. echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点。
4. echo kill | nc 127.0.0.1 2181 ,关掉server
5. echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。
6. echo cons | nc 127.0.0.1 2181 ,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。
7. echo envi |nc 127.0.0.1 2181 ,输出关于服务环境的详细信息(区别于 conf 命令)。
8. echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。
9. echo wchs | nc 127.0.0.1 2181 ,列出服务器 watch 的详细信息。
10. echo wchc | nc 127.0.0.1 2181 ,通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。
11. echo wchp | nc 127.0.0.1 2181 ,通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。

使用docker方式搭建zookeeper集群
转载地址https://www.cnblogs.com/kingkoo/p/8732448.html

三 搭建activemq集群

下载activemq的安装包

mkdir -p /usr/local/activemq 
cd /usr/local/activemq
wget https://mirrors.tuna.tsinghua.edu.cn/apache/activemq/5.14.5/apache-activemq-5.14.5-bin.tar.gz
tar -zxvf apache-activemq-5.14.5-bin.tar.gz 
cp  -r apache-activemq-5.14.5 apache-activemq-node1
cp  -r apache-activemq-5.14.5 apache-activemq-node2
cp  -r apache-activemq-5.14.5 apache-activemq-node3

修改配置文件activemq.xml

cd /usr/local/activemq/apache-activemq-node1/conf
vim activemq.xml

添加networkConnectors(注意这个地方配置的是135机器上activemq集群需要开放的端口)

<networkConnectors>
                <networkConnector name="link2b" duplex="true" uri="static:(tcp://192.168.158.143:61626,tcp://192.168.158.143:61627,tcp://192.168.158.143:61628)" />
 </networkConnectors>

添加replicatedLevelDB

<replicatedLevelDB
                          directory="${activemq.data}/leveldb"    
                          replicas="3"    
                          bind="tcp://0.0.0.0:0"    
                          zkAddress="192.168.158.143:2181,192.168.158.143:2182,192.168.158.143:2183"    
                          zkPassword=""    
                          hostname="192.168.158.143"
                          sync="local_disk"  
                          zkPath="/activemq/leveldb-stores"   
                />

如下图
在这里插入图片描述
在这里插入图片描述
修改jetty.xml文件port
在这里插入图片描述

进入bin路径下启动
./activemq start

如果没有启动成功 去安装包的data/ 查看日志信息
浏览器输入
http://192.168.158.143:8161/admin/
http://192.168.158.143:8162/admin/
http://192.168.158.143:8163/admin/
进行访问
只有一个网址可以访问成功
账号:admin
密码:admin
在这里插入图片描述
去8162 对应的节点bin 路径下关闭该节点
./activemq stop

访问浏览器其他的网址
发现8163 可以访问

自此 activemq 集群搭建成功

再次在135 机器上搭建一遍
并且添加各自对应的网络
就可实现 负载均衡

activemq的使用链接https://blog.csdn.net/liuyuanq123/article/details/79109218
使用推荐http://activemq.apache.org/getting-started.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值