• zookeeper与activemq整合


    (1)zookeeper与activemq原理

    使用ZooKeeper实现的Master-Slave实现方式,是对ActiveMQ进行高可用的一种有效的解决方案,高可用的原理:使用ZooKeeper(集群)注册所有的ActiveMQ Broker。只有其中的一个Broker可以对外提供服务(也就是Master节点),其他的Broker处于待机状态,被视为Slave。如果Master因故障而不能提供服务,则利用ZooKeeper的内部选举机制会从Slave中选举出一个Broker充当Master节点,继续对外提供服务。

    (2)环境

    • centos版本
    #cat /etc/redhat-release 
    CentOS release 6.5 (Final)
    
    • 关闭selinux和iptables防火墙配置
    sed -ri '/^SELINUX=/cSELINUX=disable' /etc/selinux/config
    setenforce 0
    iptables -I INPUT 1 -s 192.168.92.0/24 -j ACCEPT
    service iptables save
    
    • zookeeper环境
    主机IP                 消息端口        通信端口        节点目录/usr/local/下
    192.168.92.134        2181            2888:3888          zookeeper
    192.168.92.135        2181            2888:3888          zookeeper
    192.168.92.136        2181            2888:3888          zookeeper
    
    • activemq环境
    主机IP                         消息端口      控制台端口          节点目录/usr/local/下
    192.168.92.134                  61616          8161                 activemq
    192.168.92.135                  61616          8161                 activemq
    192.168.92.136                  61616          8161                 activemq
    

    (3)安装zookeeper

    1)基本配置

    #node1配置:192.168.92.134 
    [ -d /tools ] || mkdir /tools 
    cd /tools
    wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
    tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
    ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
    mkdir  /usr/local/zookeeper/{data,log}
    echo 1 >/usr/local/zookeeper/data/myid
    echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile
    ###############################################################################
    #node2配置:192.168.92.135 
    [ -d /tools ] || mkdir /tools 
    cd /tools
    wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
    tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
    ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
    mkdir  /usr/local/zookeeper/{data,log}
    echo 2 >/usr/local/zookeeper/data/myid
    echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile
    ###############################################################################
    #node3配置:192.168.92.136
    [ -d /tools ] || mkdir /tools 
    cd /tools
    wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
    tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
    ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
    mkdir  /usr/local/zookeeper/{data,log}
    echo 3 >/usr/local/zookeeper/data/myid
    echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile
    

    2)修改配置文件:三台节点的配置相同

    cd /usr/local/zookeeper/conf
    cp zoo_sample.cfg zoo.cfg
    
    #vim zoo.cfg
    clientPort=2181
    server.1=192.168.92.134:2888:3888 
    server.2=192.168.92.135:2888:3888 
    server.3=192.168.92.136:2888:3888 
    dataDir=/usr/local/zookeeper/data
    dataLogDir=/usr/local/zookeeper/log
    

    3)三台节点启动zookeeper

    zkServer.sh start
    ss -anltup | grep 2181
    
    # zkServer.sh status
    JMX enabled by default
    Using config: /usr/local/zookeeper-3.3.6/bin/../conf/zoo.cfg
    Mode: follower
    zkServer.sh status
    JMX enabled by default
    Using config: /usr/local/zookeeper-3.3.6/bin/../conf/zoo.cfg
    Mode: leader
    

    (4)安装和配置activemq

    1)安装activemq

    cd /tools
    wget https://mirrors.tuna.tsinghua.edu.cn/apache//activemq/5.15.3/apache-activemq-5.15.3-bin.tar.gz
    tar xf apache-activemq-5.15.3-bin.tar.gz -C  /usr/local/
    ln -sv /usr/local/apache-activemq-5.15.3/ /usr/local/activemq
    echo  "export PATH=$PATH:/usr/local/activemq/bin"  >>/etc/profile;source /etc/profile
    

    2)修改配置文件

    cp /usr/local/activemq/conf/activemq.xml{,.bak}
    
    • 修改配置文件内容如下
    #vim /usr/local/activemq/conf/activemq.xml
    注释一下内容:
    		<!--
            <persistenceAdapter>
                <kahaDB directory="${activemq.data}/kahadb"/>
            </persistenceAdapter>
    		-->
    修改内容如下:三台主机的hostname各种修改成自己的ip地址即可
    <persistenceAdapter>
    <replicatedLevelDB 
    directory="${activemq.data}/leveldb"
    replicas="3"
    bind="tcp://0.0.0.0:0"
    zkAddress="192.168.92.134:2181,192.168.92.135:2181,192.168.92.136:2181"
    zkPassword="redhat"
    hostname="192.168.92.134"
    sync="local_disk"
    zkPath="/activemq/leveldb-stores" />
    </persistenceAdapter>
    修改brokerName:三台服务器必须要一样
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="mq" dataDirectory="${activemq.data}">
    
    • 启动activemq
    activemq start 
    
  • 相关阅读:
    央视好节目整理
    IT项目各阶段管理
    使用mint-ui Loadmore组件时出现报错
    简单了解map,filter,some,every,forEach,for in,for of,find,用法
    h5简单学习总结
    video标签详解(转载)
    浏览器对象
    获取后三天的时间
    Map和Set以及iterable类型集合的循环遍历
    placeholder的样式设置
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/8920508.html
Copyright © 2020-2023  润新知