• activeMQ集群搭建及高可用


    三台服务器搭建如下的集群,达到了高可用、也同时达到了负载的目的:

    /******************************************************************下面就来搭建这样的集群服务  Linux环境下************************************************************************/

     本次模拟环境在一台机器上完成,实际中是三台服务器上配置,多台linux服务器之间设置共赏文件夹 设置不在本例子考虑之中

    如下的 activeMQ-A 代表  A机器、        activeMQ-B代表 B机器、                   activeMQ-C 代表C机器

    1、创建集群的目录文件夹 activeMQCluster

    2、复制解压的apache-activemq-5.15.3文件到activeMQCluster 文件夹下,并且复制三份分别为:activeMQ-A、activeMQ-B、activeMQ-C

    如果是三台服务器,则分别安装ActiveMQ,并取名即可。

    3、创建共享文件夹 kahadb

    4、开始配置各个节点服务器,先配置A节点 分别进入

    cd activeMQ-A/

    cd conf/ 

    编辑 VI activemq.xml

    a、修改 activemq.xml 文件中的内容

    1  <transportConnectors>
    2             <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
    3             <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    4             <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    5             <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    6             <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    7             <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    8         </transportConnectors>

    为下面这样,并增加网络配置相关内容  其中标红的为增加的内容

     1 <transportConnectors>
     2             <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
     3             <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     4            <!-- <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     5             <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     6             <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     7             <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> -->
     8         </transportConnectors>
     9 
    10         <networkConnectors>
    11           <networkConnector name="local_network" uri="static:(tcp://192.168.0.106:61617,tcp://192.168.0.106:61618)"/>
    12         </networkConnectors>

    5、开始配置各个节点服务器,配置B节点

    进入B节点的conf文件夹下

    a、修改配置文件activemq.xml 的内容  按照A节点一样的配置 ,注释掉不需要的端口服务,同时修改 端口为 61617、添加网络连接配置 

    具体如下:

     1 <transportConnectors>
     2             <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
     3             <transportConnector name="openwire" uri="tcp://0.0.0.0:61617?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     4            <!-- <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     5             <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     6             <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     7             <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>  -->
     8         </transportConnectors>
     9 
    10         <networkConnectors>
    11            <networkConnector name="network_a" uri="static:(tcp://192.168.0.106:61616)"/>
    12         </networkConnectors>

    b、修改数据共赏存储的目录 B 和 C 节点采用共赏文件夹的方式来

    找到 persistenceAdapter 属性 修改为:

    1 <persistenceAdapter>
    2             <kahaDB directory="/duanml/activeMQCluster/kahadb"/>
    3         </persistenceAdapter>

    c、修改jetty.xml 文件

    找到 bean 为  id="jettyPort"  修改属性port 为:8162

    1 <bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
    2              <!-- the default port number for the web console -->
    3         <property name="host" value="0.0.0.0"/>
    4         <property name="port" value="8162"/>
    5     </bean>

    6、开始配置各个节点服务器,配置C节点

    进入C节点的conf文件夹下

    a、修改配置文件activemq.xml 的内容  按照A节点一样的配置 ,注释掉不需要的端口服务,同时修改 端口为 61618、添加网络连接配置 

    具体如下:

     1 <transportConnectors>
     2             <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
     3             <transportConnector name="openwire" uri="tcp://0.0.0.0:61618?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     4            <!-- <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     5             <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     6             <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
     7             <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> -->
     8         </transportConnectors>
     9 
    10         <networkConnectors>
    11             <networkConnector name="network_a" uri="static:(tcp://192.168.0.106:61616)"/>
    12          </networkConnectors>

    b、修改数据共赏存储的目录 B 和 C 节点采用共赏文件夹的方式来

    找到 persistenceAdapter 属性 修改为:

    1 <persistenceAdapter>
    2             <kahaDB directory="/duanml/activeMQCluster/kahadb"/>
    3         </persistenceAdapter>

    c、修改jetty.xml 文件

    找到 bean 为  id="jettyPort"  修改属性port 为:8163

    1 <bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
    2              <!-- the default port number for the web console -->
    3         <property name="host" value="0.0.0.0"/>
    4         <property name="port" value="8163"/>
    5     </bean>

    以上所有节点A、B、C都已经配置完成了

    分别启动所有的节点验证 集群的搭建

    启动A节点

    启动B节点

    启动C节点

    查看端口启动情况:netstat -ant

    其中可以看到 A节点 61616  和 B节点 61617  处于 listen状态  而C节点为slave  处于阻塞状态

     下面我们来停止B节点,假设B节点挂了,看看我们的集群是否可以使用,达到高可用

    再次查看端口的情况 可以看到 A节点 61616  和 C节点 61618  处于 listen状态  而B节点为slave  处于阻塞状态

  • 相关阅读:
    (1)一步一步开发一个简单二维CAD之基本框架
    weekly review 200844: Lazy
    《理解专业程序员》读书笔记
    weekly review 200843: House M.D.
    weekly review 200846: table tennis
    weekly review 200845: Work Hard Not Enough
    Change Your Mind and Your Life Will Follow
    weekly review 200847: tdd
    爱心·王搏计划“走出地震”影展需要志愿者(11月24日——11月26日)
    read_notes
  • 原文地址:https://www.cnblogs.com/yinfengjiujian/p/9022226.html
Copyright © 2020-2023  润新知