小编给大家分享一下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&wireFormat.maxFrameSize=104857600"/> <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&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集群负载均衡、安装、配置的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。