zookeeper集群+activemq集群搭建

一、zookeeper介绍

ZooKeeper:它是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等!

二、zookeeper集群搭建

1.基础环境

IP/名称

操作系统

服务端口

集群通信端口

节点目录

应用版本

192.168.100.106/zk1

centos7.8

2181

2881:3881

/usr/local/zookeeper

zookeeper-3.4.5.tar.gz

192.168.100.107zk2

centos7.8

2181

2881:3881

/usr/local/zookeeper

zookeeper-3.4.5.tar.gz

192.168.100.108/zk3

centos7.8

2181

2881:3881

/usr/local/zookeeper

zookeeper-3.4.5.tar.gz

2.安装jdk

本次演示jdk安装为方便,用yum安装,三个节点一样

[root@zk1 ~]# yum install -y java-1.8.0-openjdk-devel
3.解压安装
[root@zk1 ~]# tar xf zookeeper-3.4.5.tar.gz -C /usr/local/
[root@zk1 ~]# mv /usr/local/zookeeper-3.4.5 /usr/local/zookeeper
[root@zk1 ~]# cd /usr/local/zookeeper/conf/
[root@zk1 ~]# mv zoo_sample.cfg zoo.cfg
4.修改配置
[root@zk1 ~]# vi zoo.cfg
#修改数据存储目录与添加日志存储目录,添加完成后创建该目录
dataDir=/usr/local/zookeeper/data		
dataLogDir=/usr/local/zookeeper/log     

#服务端口,根据实际情况修改
clientPort=2181

#末尾添加zk集群之间通讯端口
server.1=192.168.100.106:2881:3881
server.2=192.168.100.107:2881:3881
server.3=192.168.100.108:2881:3881
5.创建zk1 myid文件
#进入zookeeper目录中
[root@zk1 ~]# cd /usr/local/zookeeper/
[root@zk1 zookeeper]# mkdir data	#创建数据存储目录
[root@zk1 zookeeper]# mkdir log		#创建日志存储目录
[root@zk1 zookeeper]# cd data		#进入数据存储目录
[root@zk1 data]# vi  myid	    #添加server id
#演示为192.168.100.106,为zk1所以添加1,以此类推zk2为2,zk3为3
1
6.启动并查看
[root@zk1 data]# /usr/local/zookeeper/bin/zkServer.sh start
[root@zk1 data]# /usr/local/zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader  	 	#集群启动成功后有一个为master节点

[root@zk2 ~]# /usr/local/zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower      #集群启动成功后为slave节点
	
[root@zk3 ~]# /usr/local/zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower		#集群启动成功后为slave节点

三、activemq介绍

MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有ActiveMQ,RabbitMQ,kafka。ActiveMQ是Apache下的开源项目,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现。

特点:
1、支持多种语言编写客户端
2、对spring的支持,很容易和spring整合
3、支持多种传输协议:TCP,SSL,NIO,UDP等
4、支持AJAX

优点:提高数据的安全性,提高资源的使用率

四、activemq搭建

1.基础环境

IP/名称

操作系统

服务端口

jetty控制台端口

节点目录

应用版本

192.168.100.106/zk1

centos7.8

61616

8161

/usr/local/activemq

apache-activemq-5.11.1-bin.tar.gz

192.168.100.107zk2

centos7.8

61616

8161

/usr/local/activemq

apache-activemq-5.11.1-bin.tar.gz

192.168.100.108/zk3

centos7.8

61616

8161

/usr/local/activemq

apache-activemq-5.11.1-bin.tar.gz

2.创建安装目录,解压并安装,3个节点一致

[root@zk1 ~]# tar xf apache-activemq-5.11.1-bin.tar.gz -C /usr/local/
[root@zk1 ~]# mv /usr/local/apache-activemq-5.11.1 /usr/local/activemq

3.修改服务端口(activemq.xml)
[root@zk1 ~]# cd /usr/local/activemq/conf/
[root@zk1 conf]# vi activemq.xml
#根据实际情况修改默认端口
  <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  #修改持久化策略
  <persistenceAdapter>
        <replicatedLevelDB
         directory="${activemq.data}/levelDB"
         replicas="3"		#当前主从模型中的节点数,根据实际配置
         bind="tcp://192.168.100.106:62626"		#主从实例间的通讯端口。
         #这里要与zookeeeper的通信地址相对应
         zkAddress="192.168.100.106:2181,192.168.100.107:2181,192.168.100.108:2181"
         zkPath="/activemq/leveldb-stores" hostname="192.168.100.106" /> 	#ActiveMQ实例安装的实际linux主机名,可以在/etc/hosts配置文件中设置
    </persistenceAdapter>
4.修改控制台端口jetty.xml
[root@zk1 conf]# vi jetty.xml 
 <bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
         <!-- the default port number for the web console -->
    <property name="host" value="0.0.0.0"/>
    <property name="port" value="8161"/>
</bean>
5.启动并验证

ActiveMQ的主从模型,是一种高可用的解决方案,在zookeeper中注册若干的ActiveMQ Broker,其中只有一台作为主机master对外提供服务,其他作为备份slave保持待机。当master出现问题导致宕机不能正常提供服务的时候,zookeeper通过内部选举,在众多slave中推举出一台作为master继续对外提供服务。
activemq集群最多支持损坏一个节点,若损坏2台,集群所有节点将停止运行。

集群中只有master对外提供服务,其他两个slave不对外提供服务,当访问activemq管理后台时,可以用netstat -uanpt|grep 端口,查看哪个节点端口运行,就可以使用哪个节点。
[root@zk1 conf]# /usr/local/activemq/bin/activemq start
[root@zk1 conf]# netstat -antup | grep 8161
tcp        0      0 0.0.0.0:8161            0.0.0.0:*               LISTEN      15629/java
6.查看data下日志状态
[root@zk1 data]# tail -100f activemq.log

master启动

zookeeper mq区别 zookeeper与mq_分布式


slave启动

zookeeper mq区别 zookeeper与mq_zookeeper mq区别_02


网页验证IP+master端口

zookeeper mq区别 zookeeper与mq_分布式_03