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

/******************************************************************下面就来搭建这样的集群服务  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 文件中的内容

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

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

 <transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<!-- <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> -->
</transportConnectors> 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、添加网络连接配置

具体如下:

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

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

找到 persistenceAdapter 属性 修改为:

 <persistenceAdapter>
<kahaDB directory="/duanml/activeMQCluster/kahadb"/>
</persistenceAdapter>

c、修改jetty.xml 文件

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

 <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="8162"/>
</bean>

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

进入C节点的conf文件夹下

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

具体如下:

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

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

找到 persistenceAdapter 属性 修改为:

 <persistenceAdapter>
<kahaDB directory="/duanml/activeMQCluster/kahadb"/>
</persistenceAdapter>

c、修改jetty.xml 文件

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

 <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="8163"/>
</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  处于阻塞状态

activeMQ集群搭建及高可用的更多相关文章

  1. EMQ集群搭建实现高可用和负载均衡(百万级设备连接)

    一.EMQ集群搭建实现高可用和负载均衡 架构服务器规划 服务器IP 部署业务 作用 192.168.81.13 EMQTTD EMQ集群 192.168.81.22 EMQTTD EMQ集群 192. ...

  2. Redis操作及集群搭建以及高可用配置

    NoSQL - Redis 缓存技术 Redis功能介绍 数据类型丰富 支持持久化 多种内存分配及回收策略 支持弱事务 支持高可用 支持分布式分片集群 企业缓存产品介绍 Memcached: 优点:高 ...

  3. 2-20 MySQL集群搭建实现高可用

    MySQL集群概述和安装环境 MySQL Cluster是MySQL适合于分布式计算环境的高实用.高冗余版本.Cluster的汉语是"集群"的意思.它采用了NDB Cluster ...

  4. Hadoop集群搭建-HA高可用(手动切换模式)(四)

    步骤和集群规划 1)保存完全分布式模式配置 2)在full配置的基础上修改为高可用HA 3)第一次启动HA 4)常规启动HA 5)运行wordcount 集群规划: centos虚拟机:node-00 ...

  5. Redis5以上版本伪集群搭建(高可用集群模式)

    redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用一台机器(可以多台机器部署,修改一下ip地 ...

  6. LVS集群和Keepalived高可用实战

    第四十章LVS集群和Keepalived高可用实战 一.ARP协议 1.概念 地址解析协议,即ARP(AddressResolutionProtocol),是根据IP地址获取物理MAC地址的一个TCP ...

  7. ActiveMQ(七)_伪集群和主从高可用使用

      一.本文目的         介绍如何在同一台虚拟机上搭建高可用的Activemq服务,集群数量包含3个Activemq,当Activemq可用数>=2时,整个集群可用.         本 ...

  8. ActiveMQ(七)_伪集群和主从高可用使用(转)

    本文转自: https://www.cnblogs.com/gossip/p/5977489.html 一.本文目的         介绍如何在同一台虚拟机上搭建高可用的Activemq服务,集群数量 ...

  9. Activemq集群搭建

    集群搭建 一:静态网络集群 1.简介 ​ 当ActiveMQ面对大量消息存储和大量Client交互时,性能消耗将会达到单个broker极限,此时我们需要对ActiveMQ进行水平扩展.ActiveMQ ...

随机推荐

  1. DataOutput接口实现类有:

    FSDataOutputStream final FSDataOutputStream create = fs.create(path);   

  2. 【译】GNU Radio How to write a block 【如何开发用户模块及编写功能块】

    本文讲解如何在GNU Radio中添加用户开发的信号处理模块,译文如有不当之处可参考原文地址:http://gnuradio.microembedded.com/outoftreemodules Ou ...

  3. Cannot read property 'setState' of undefined

    You're using function() in your Promise chain, this will change the scope for this. If you're using ...

  4. cowboy的路由方式

    直接贴代码 route_helper.erl -module(route_helper). -export([get_routes/]). get_routes() -> [ {'_', [ % ...

  5. 洛谷八连测R4

    1.逃避 https://www.luogu.org/problemnew/show/T14561 注意: 1.输入时需要用EOF判断,否则会TLE. 2.用flag判断字符是不是每一句首字母. 3. ...

  6. jq下拉插件,chosen

    Chosen 选项列表 <select data-placeholder="请选择" class="chosen-select" tabindex=&qu ...

  7. 制作mysql数据快照

    在建立主从关系时,如果主上有旧数据,需要将旧数据拷贝到每一个从上.下面介绍几种不同的拷贝方式. 方法一:使用mysqldump工具创建一个你想要复制的所有数据库的一个dump.这是推荐使用的方法,特别 ...

  8. mysql server id一样导致报错

    (root@localhost) 16:03:38 [(none)]> show slave status \G; Last_IO_Errno: 1593 Last_IO_Error: Fata ...

  9. Windows2012使用笔记

    一.介绍 win 2012的名字于北京时间2012年4月18日公布,全称Windows Server 2012(下面简称win 2012),正式版于2012年9月4日发布.这是一套基于Windows ...

  10. 【做题记录】USACO gold * 50(第一篇)

    orz xhk 5/50 1597: [Usaco2008 Mar]土地购买 $ f[i]=min(f[j]+x[i]*y[j+1]) $ 然后斜率优化 1699: [Usaco2007 Jan]Ba ...