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

/******************************************************************下面就来搭建这样的集群服务  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. SharePoint自动登录问题

    SharePoint使用Windows身份验证,默认会弹出Windows验证登录框,如下图所示: 1.对于已经加域的客户端,可通过如下方式解决 IE安全设置,将站点加信任站点,然后修改信任站点安全设置 ...

  2. Nginx (一)Windows下编译Nginx源码以及安装 nginx for windows方法步骤

    转载自: http://apps.hi.baidu.com/share/detail/11192699#content Nginx介绍: Nginx ("engine x")是一个 ...

  3. 52道Python面试题

    1.python中is和==的区别 Python中对象包含的三个基本要素,分别是:id(身份标识) .type(数据类型)和value(值).‘==’比较的是value值‘is’比较的是id 2.简述 ...

  4. PTA 1004 Counting Leaves (30)(30 分)(dfs或者bfs)

    1004 Counting Leaves (30)(30 分) A family hierarchy is usually presented by a pedigree tree. Your job ...

  5. jQuery样式与动画

    修改内联CSS .css() 获取 //取得单个属性的值,传入'属性名',返回"value" .css('property') //取得多个属性的值,传入'['属性1','属性2' ...

  6. @RestController的方法中 路径参数带.(点号)配置

    如下面这种//http://localhost:8080/api/v1/user/info/email/test@163.com @RequestMapping(value = "/info ...

  7. 如何在Oracle中向Collection类型的变量中逐条插入数据

    这篇文章将要介绍如果需要生成一个新的Collection并且向其中添加数据的方法. procedure insert_object(d in dept_array, d2 out dept_array ...

  8. 【Consul】Consul实践指导-配置文件

    Agent有各种各样的配置选项,这些配置选项可以通过命令行参数的方式设定,也可用通过配置文件的方式设定--所有的配置选项都是可选的,当然也是有默认值的. 当加载配置选项时,consul是按照词典顺序从 ...

  9. RocketMQ初探(一)

    初学RocketMQ,认识一门新技术,还是哪三问:是什么?能干什么?怎么用? 消息中间件主要是实现分布式系统中解耦.异步消息.流量销锋.日志处理等场景. Rocketmq是阿里捐赠给Apache的.3 ...

  10. shell编程——内部变量

    常用的内部变量有:echo, eval, exec, export, readonly, read, shift, wait, exit 和 点(.) echo:将变量名指定的变量显示到标准输出 [r ...