Primeton MQ Server 集群安装

zookeeper 集群安装

集群节点信息

name ip path
Z1 192.168.16.111 /home/primeton/zookeeper/zookeeper-3.4.13
Z2 192.168.16.112 /home/primeton/zookeeper/zookeeper-3.4.13
Z3 192.168.16.116 /home/primeton/zookeeper/zookeeper-3.4.13
安装包下载

首先使用primeton用户登录linux,将zookeeper-3.4.13的安装包下载传至/home/primeton/zookeeper目录下 http下载路径: http://apache.fayea.com/zookeeper/

解压安装包

输入tar -zxvf zookeeper-3.4.13.tar.gz将其解压

创建data和logs目录

解压后进入zookeeper-3.4.13目录,创建data目录和logs目录,zookeeper默认是不带这两个目录的,需要用户自行创建并指定。

创建myid文件

在/home/primeton/zookeeper/zookeeper-3.4.13/data下创建myid文件 编辑myid文件,并在对应的IP的机器上输入对应的编号。

Z1节点myid输入1,Z2节点myid输入2,Z3节点myid输入3。

复制修改配置文件

接着进入zookeeper-3.4.13/conf目录下,将zoo_sample.cfg文件复制一份取名zoo.cfg

注:之所以取名zoo.cfg是因为这是启动时默认约定读取的

1590561124949

server.1=192.168.16.111:2881:3881的解释如下:

1是指一个数字,与前面创建的myid对应即可,标志这是第几台机器;

2881 表示的是这个服务器与集群中的 Leader 服务器交换信息的端,2881端口简单来说就是zookeeper服务之间的通信端口; 3881端口是zookeeper与其他应用程序通信的端口

其他cfg参数说明
  1. tickTime tickTime这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳。
  2. initLimit=10 initLimit这个配置项是用来配置Zookeeper接受客户端(这里所说的客户端不是用户连接Zookeeper服务器的客户端,而是Zookeeper服务器集群中连接到Leader的Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过10个心跳的时间(也就是tickTime)长度后Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是10*2000=20 秒。
  3. syncLimit=5 syncLimit这个配置项标识Leader与Follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒。
  4. dataDir dataDir顾名思义就是Zookeeper保存数据的目录,默认情况下Zookeeper将写数据的日志文件也保存在这个目录里。
  5. clientPort=2181 clientPort这个端口就是客户端(应用程序)连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求

根据本例中的情况Z1/Z2/Z3节点zoo.cfg中的内容一样。

增加环境变量

修改该用户下的.bash_profile文件,此文件默认为隐藏的

[primeton@localhost bin]$ vi /home/primeton/.bash_profile

增加内容如下:

export ZOOKEEPER_HOME=/home/primeton/zookeeper/zookeeper-3.4.13
export PATH=$ZOOKEEPER_HOME/bin:$PATH

使配置文件生效:

[primeton@localhost bin]$ source /home/primeton/.bash_profile
防火墙配置

需要将防火墙关闭或者在防火墙中打开要用到的端口。本例中将防火墙关闭:

[root@localhost bin]# systemctl stop firewalld.service
开启zookeeper服务

启动并测试zookeeper(使用primeton用户启动,不要使用root账户),在zookeeper目录的bin下面执行:

./zkServer.sh start
查看状态

接下来我们运行status命令分别查看各自的状态

Z1:

1590562130009

Z2:

1590562222852

Z3:

1590562242009

mq server集群安装

name ip path
MQ1 192.168.16.111 /home/primeton/mq
MQ2 192.168.16.112 /home/primeton/mq
MQ3 192.168.16.116 /home/primeton/mq

集群配置

在3个Primeton MQ节点配置conf/pmq.xml持久化适配器。修改其中bind、zkAddress、hostname和zkPath。注意:每个Primeton MQ的BrokerName必须相同,否则不能加入集群。

最为重要的是修改persistenceAdapter部分,将其默认的注释,加入如下:

MQ1:  
<persistenceAdapter>
    <replicatedLevelDB
        directory="${pmq.data}/leveldb"
        replicas="3"
        bind="tcp://0.0.0.0:62621"
      zkAddress="192.168.16.111:2181,192.168.16.112:2181,192.168.16.116:2181"
        hostname="192.168.16.111" zkPath="/pmq/leveldb-stores"/>
</persistenceAdapter>
MQ2:  
<persistenceAdapter>
    <replicatedLevelDB
        directory="${pmq.data}/leveldb"
        replicas="3"
        bind="tcp://0.0.0.0:62622"
    zkAddress="192.168.16.111:2181,192.168.16.112:2181,192.168.16.116:2181"
        hostname="192.168.16.112" zkPath="/pmq/leveldb-stores"/>
</persistenceAdapter>
MQ3:  
<persistenceAdapter>
    <replicatedLevelDB
        directory="${pmq.data}/leveldb"
        replicas="3"
        bind="tcp://0.0.0.0:62623"
    zkAddress="192.168.16.111:2181,192.168.16.112:2181,192.168.16.116:2181"
        hostname="192.168.16.116" zkPath="/pmq/leveldb-stores"/>
</persistenceAdapter>
启动集群

修改配置后启动各单节点服务即可。

查看状态

在192.168.16.111上进到/home/primeton/zookeeper/zookeeper-3.4.13/bin目录下:

[root@localhost bin]# ./zkCli.sh -server 192.168.16.111:2181

链接成功,查看节点。

[zk: 192.168.16.111:2181(CONNECTED) 0] ls /pmq/leveldb-stores

1590564054843

查看节点信息:

1590564217392

00000000113(192.168.16.116) 节点状态是master 。

1590564301007

00000000122节点为slave。

1590564353443

00000000114节点为slave。

results matching ""

    No results matching ""