温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ActiveMQ集群负载均衡、安装、配置的示例分析

发布时间:2021-11-12 14:34:51 来源:亿速云 阅读:123 作者:小新 栏目:云计算

小编给大家分享一下ActiveMQ集群负载均衡、安装、配置的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

一. MQ介绍

MQ是应用程序对应用程序的通信方法,它可以作为程序中间媒介,通过消息(用户的各种类型的数据文件,某个应用向其它应用发出的处理请求等都可以作为消息)的方式解耦rpc。

二. MQ适用场景

为完成某一无需即时返回且耗时的业务,将该操作提取出来,进行了异步处理,节省了服务器的请求响应时间,从而提高了系统的吞吐量,如:城市停车场中的业务场景、电商中的订单物流仓储服务、不同平台间对接都离不开MQ

三. 以ActiveMQ为例,集群安装、配置、负载均衡

在MQ选型时,很多人都会疑惑,到底选哪种?RabbitMq、ActiveMq、ZeroMq、kafka,我到是觉得这个和业务是分不开的,例如只是普通的系统对接或是未关键业务数据处理,没有必要纠结,直接用ActiveMq就行,如果对数据的处理性能、吞吐、容错性要求较高,还是需要自己测试下各个MQ的优缺点,下面这个是网络数据,我也没测试过,给大家一个参考:
[RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总](http://blog.csdn.net/linsongbin1/article/details/47781187)

下面开始集群安装、配置

主机    集群端口  消息端口  管控台端口  节点安装目录
192.168.1.81  62621  51511  8161  ${MQ_HOME}/node-01
192.168.1.82  62622  51512  8162  ${MQ_HOME}/node-02
192.168.1.83  62623  51513  8163  ${MQ_HOME}/node-03


1. 我们使用ZooKeeper和LevelDB搭建ActiveMQ集群,使用ZooKeeper(集群)注册所有的ActiveMQ Broker。只有其中的一个 Broker 可以提供服务,被视为Master,其他的Broker处于待机状态,被视为 Slave。如果 Master 因故障而不能提供服务,ZooKeeper会从Slave 中选举出一个 Broker 充当 Master。

[ZooKeeper集群的安装、配置](http://my.oschina.net/lbnan/blog/615153)

2. 下载ActiveMq,tar -zxvf 解压,名为为node-0x

3. 在iptables中开放端口

4. 修改${MQ_HOME}/conf/jetty.xml中的管理端口,如下:


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

5. 配置 conf/activemq.xml 中的持久化适配器。修改其中 bind、zkAddress、

hostname 和 zkPath,每个 ActiveMQ 的 BrokerName 必须相同,否则不能加入集群,如下:

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="myBroker" dataDirectory="${activemq.data}">
    <persistenceAdapter>
    <!-- kahaDB directory="${activemq.data}/kahadb"/ -->
    <replicatedLevelDB directory="${activemq.data}/leveldb" replicas="3" bind="tcp://0.0.0.0:62621" zkAddress="192.168.1.81:2181,192.168.1.82:2182,192.168.1.83:2183" hostname="zk-01" zkPath="/activemq/leveldb-stores"/>
    </persistenceAdapter>
</broker> 

6. 配置各节点的消息端口,如下:

<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->

<transportConnector name="openwire" uri="tcp://0.0.0.0:51511?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>

7. 接下来我们使用static Broker-Cluster方式进行负载均衡

还有其他方式,找了一篇不错的博客[Apache ActiveMQ 负载均衡](http://www.tuicool.com/articles/r6FfY3)

使用以上同样的方式再部署一个集群,集群名称为myBroker2,在conf/activemq.xml中配置:

<networkConnectors>
    <networkConnector uri="static:(tcp://192.168.1.101:53531,tcp://192.168.1.102:53532,tcp://192.168.1.103:53533)" duplex="false"/>
    </networkConnectors>
</networkConnectors>

8. 启动3个MQ并监听:
${MQ_HOME}/bin/activemq start
tail -f ${MQ_HOME}/data/activemq.log

看完了这篇文章,相信你对“ActiveMQ集群负载均衡、安装、配置的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI