赞
踩
使用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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。