1、Zookeeper准备
1、解压zookeeper
2、Zookeeper目录中创建data目录
(1)目录中创建一个标记文件(用于区分不同zookeeper)
(2)echo 1 >> myid
3、在conf配置文件件中复制zoo模板,并创建zoo.cfg(默认zookeeper读取zoo.cfg)
4、修改zoo.cfg配置文件
zookeeper主从端口分配
5、复制zookeeper02、zookeeper03
6、启动zookeeper
(1)启动命令:/usr/local/zookeeper01/bin/zkServer.sh start
(2)关闭命令:/usr/local/zookeeper01/bin/zkServer.sh stop
(3)查看状态:/usr/local/zookeeper01/bin/zkServer.sh status
(4)要至少启动两个 Zookeeper 启动. 启动单一 Zookeeper,无法正常提供服务.
2、activemq主从安装(单一主机多mq)
1、在同一个 Linux 中安装三个 ActiveMQ 实例,使用不同端口实现同时启动,分配如下
主机 Ms端口 服务端口 Jetty端口
192.168.111.128 62626 61616 8161
192.168.111.128 62627 61617 8162
192.168.111.128 62628 61618 8163
2、修改jetty端口
(1)Activemq/conf/jetty.xml中修改
(2)Jetty是activemq的图形化界面服务,默认端口为8161
3、修改activemq的brokerName
(1)统一各个节点的brokerName命名
4、持久化配置
(1)修改 conf/activemq.xml 文件。
(2)修改 broker 标签中子标签 persistenceAdapter 相关内容。
-
replicas 属性代表当前主从模型中的节点数量。按需配置。
-
bind 属性中的端口为主从实例之间的通讯端口。代表当前实例对外开放端口是什么,三 个实例分别使用62626、62627、62628
端口。 -
zkAddress 属性代表 ZooKeeper 安装位置,安装具体情况设置。
-
zkPath 是 ActiveMQ 主从信息保存到 ZooKeeper 中的什么目录内。
-
hostname 为 ActiveMQ 实例安装 Linux 的主机名,可以在/etc/hosts 配置文件中设置。设 置格式为:IP
主机名。 如: 127.0.0.1 mq-server
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/levelDB"
replicas="3"
bind="tcp://0.0.0.0:62626"
zkAddress="192.168.159.130:2181,192.168.159.130:2182,192.168.159.130:2183"
zkPath="/activemq/leveldb-stores"
hostname="mq-server" />
</persistenceAdapter>
5、服务端口配置
(1)服务端口即activemq对外提供的访问端口,默认为61616;端口分配见上述列表。
3、启动主从
1、命令:mq01/bin/activemq start
2、查看状态
(1)Jps
(2)zookeeper客户端查看
①zookeeper01/bin/zkCli.sh 进入zookeeper客户端
②ls /activemq/leveldb-stores 访问activemq保存在zookeeper的目录
③get /activemq/leveldb-stores/00000000000
(3)查看activemq主从节点
①命令 get/activemq/leveldb-stores/00000000000
②elected 不是null的则为主节点;否则为从节点
(4)说明
①控制台只有主机才可以访问
②主机宕机后从机转成主机
③主机宕机后会转移相应数据至新主机中
④从机宕机后恢复主机会将该从机未接受指令发送至从机
4、多主机多mq主从
1、统一activemq.xml中brokerName
2、persistenceAdapter配置
<persistenceAdapter>
<!--<kahaDB directory="${activemq.data}/kahadb"/>-->
<replicatedLevelDB
directory="${activemq.data}/levelDB"
replicas="3"
bind="tcp://0.0.0.0:62626"
zkAddress="192.168.111.128:2181,192.168.111.128:2182,192.168.111.128:2183"
zkPath="/activemq/leveldb-stores"
hostname=