• zookeeper+activemq高可用集群搭建


     一、准备工作:

    准备三台机器:
    192.168.35.111
    192.168.35.112
    192.168.35.113

    二、搭建zookeeper

    三台机器上均要搭建zookeeper服务
    // 下载zookeeper安装包

    # wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
    # tar -xvf zookeeper-3.4.10.tar.gz -C /opt
    # cd /opt/zookeeper-3.4.10/conf/
    # cp zoo_sample.cfg zoo.cfg

    // 修改zoo.cfg文件
    # grep -Ev '#|^$' zoo.cfg

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/opt/zookeeper-3.4.10/data_zookeeper
    clientPort=2181
    server.1=192.168.35.111:2888:3888
    server.2=192.168.35.112:2888:3888
    server.3=192.168.35.113:2888:3888

    // 第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888

    这一步很重要,如果顺序对应的数字不对,,会导致zookeeper服务启动失败
    server.1服务器:echo 1 > /opt/zookeeper-3.4.10/zookeeper/myid
    server.2服务器:echo 2 > /opt/zookeeper-3.4.10/zookeeper/myid
    server.3服务器:echo 3 > /opt/zookeeper-3.4.10/zookeeper/myid

    // 启动zookeeper服务

    # /opt/zookeeper-3.4.10/bin/zkServer.sh start #启动服务
    # /opt/zookeeper-3.4.10/bin/zkServer.sh stop #停止服务
    # /opt/zookeeper-3.4.10/bin/zkServer.sh restart #重启服务
    # /opt/zookeeper-3.4.10/bin/zkCli.sh #连接集群

    三、搭建activemq集群

    三台机器上均要搭建activemq服务
    // 下载activemq安装包

    # wget https://archive.apache.org/dist/activemq/5.12.0/apache-activemq-5.12.0-bin.tar.gz
    # tar -xvf apache-activemq-5.12.0-bin.tar.gz -C /opt

    // 修改配置文件 activemq.xml,使用性能比较好的LevelDB替换掉默认的KahaDB

    brokerName 一定要设置相同
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq-test" dataDirectory="${activemq.data}">

    禁掉 原来的 < kahaDB directory="${activemq.data}/kahadb"/ >
    <persistenceAdapter> <!--kahaDB directory="${activemq.data}/kahadb"/ --> <replicatedLevelDB directory="${activemq.data}/leveldb" replicas="3" bind="tcp://0.0.0.0:62621" zkAddress="192.168.35.111:2181,192.168.35.112:2182,192.168.35.113:2183" hostname="192.168.37.111" # 设为当前主机的ip zkPath="/activemq/leveldb-stores"/> </persistenceAdapter>

    配置项说明:
    directory:持久化数据存放地址
    replicas:集群中节点的个数
    bind:集群通信端口
    zkAddress:ZooKeeper集群地址
    hostname:当前服务器的IP地址,如果集群启动的时候报未知主机名错误,那么就需要配置主机名到IP地址的映射关系。
    zkPath:ZooKeeper数据挂载点
    至此,ActiveMQ的高可用集群搭建完成。

    四、启动集群


    前提:ZooKeeper集群已启动
    分别启动三台ActiveMQ服务器

    # /opt/apache-activemq-5.12.0/bin/activemq start // 启动activemq服务
    # /opt/apache-activemq-5.12.0/bin/activemq stop // 结束activemq服务
    # /opt/apache-activemq-5.12.0/bin/activemq restart // 重启activemq服务
    # /opt/apache-activemq-5.12.0/bin/activemq status // 查看activemq服务状态

    集群启动成功后,ActiveMQ会往ZooKeeper中注册集群信息。为了方便,我们使用ZooInspector工具来查看具体的内容。
    第一条注册信息:

    其他两个


    从以上三条注册信息的内容我们可以看出,(192.168.35.182)被选举为主节点,并对外提供服务,其余两个节点作为从节点,处于待机状态,不提供服务。

    知道了ActiveMQ集群的主节点后,我们可以使用浏览器来访问它的管理页面,查看它是否能正常提供服务.

     

    五、测试集群的高可用性
    关掉主节点,使用ZooInspector工具来查看具体的内容,发现主节点的ip地址换了,并且节点显示只剩下两个。

  • 相关阅读:
    配置文件或者模板中的占位符替换工具类
    [C++设计模式] composite 组合模式
    集群通信组件tribes之集群的平行通信
    hibernate配置
    【Cocos2dx】Windows平台下Cocos2dx 2.x的下载、安装、配置,打造自己的Helloworld
    Codeforces Round #250 (Div. 2)
    一个不断复读且并没什么卵用的我这一种人的 学习观
    2015年创业中遇到的技术问题:81-90
    2015年创业中遇到的技术问题:81-90
    下载好一个android软件之后,怎样自动提示安装?
  • 原文地址:https://www.cnblogs.com/carriezhangyan/p/11492513.html
Copyright © 2020-2023  润新知