zookeeper + LevelDB + ActiveMQ实现消息队列高可用

Posted 探索互联网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zookeeper + LevelDB + ActiveMQ实现消息队列高可用相关的知识,希望对你有一定的参考价值。

      通过集群实现消息队列高可用。

      消息队列在项目中存储订单、邮件通知、数据分发等重要信息,故对消息队列稳定可用性有高要求。

      现在通过zookeeper选取activemq leader的形式实现当某个activemq节点出问题时,保证系统的可用性。

zookeeper做为服务选取器来选择activemq作为master。

     开发环境将zoopkeeper zoo_sample.cfg拷贝并修改文件名称为zoo.cfg。

     activemq 配置禁用kahadb启用LevelDB 其中 zkAddress="127.0.0.1:2181" 为上边zoopkeeper 配置

  <!-- 不采用kahadb方式
  <persistenceAdapter>
  <kahaDB directory="${activemq.data}/kahadb"/>
  </persistenceAdapter>
  -->
  <persistenceAdapter>
  <replicatedLevelDB
  directory="${activemq.data}/leveldb"
  replicas="3"
  bind="tcp://0.0.0.0:0"
 zkAddress="127.0.0.1:2181"
  hostname="127.0.0.1"
 sync="local_disk"
 zkPath="/activemq/leveldb-stores"
 />
</persistenceAdapter>

如开发机器都在同一台机器可以修改下文端口来实现多个activemq在同一台电脑上启动

<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:5673?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1884?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61615?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
</transportConnectors>

 

以上是关于zookeeper + LevelDB + ActiveMQ实现消息队列高可用的主要内容,如果未能解决你的问题,请参考以下文章

zookeeper + LevelDB + ActiveMQ实现消息队列高可用

ActiveMQ高可用集群部署(基于Replicated LevelDB Store + Zookeeper)

ActiveMQ 基于zookeeper的主从(levelDB Master/Slave)搭建以及Spring-boot下使用

四ActiveMQ Zookeeper集群

ActiveMQ+ZooKeeper搭建高可用集群

从入门到精通的ActiveMQ