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>

时间: 2024-12-21 22:03:34

zookeeper + LevelDB + ActiveMQ实现消息队列高可用的相关文章

分布式架构高可用架构篇_02_activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试

从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的Master-Slave 方式,增加了基于ZooKeeper + LevelDB的 Master-Slave实现方式,其他两种方式目录共享和数据库共享依然存在. 三种集群方式的对比: (1)基于共享文件系统(KahaDB,默认): <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </persi

kafka 分区和副本以及kafaka 执行流程,以及消息的高可用

1.Kafka概览 Apache下的项目Kafka(卡夫卡)是一个分布式流处理平台,它的流行是因为卡夫卡系统的设计和操作简单,能充分利用磁盘的顺序读写特性.kafka每秒钟能有百万条消息的吞吐量,因此很适合实时的数据流处理.例如kafka在线日志收集系统可作为flume的实时消息sink端,再通过kafka的消费者将消息实时写入hbase数据库中. 卡夫卡以topic分类对记录进行存储,每个记录包含key-value和timestamp. 1.1卡夫卡系统的组件.角色 broker: 每个正在运

开源jms服务ActiveMQ的负载均衡+高可用部署方案探索

一个文件(或目录)拥有若干个属性,包括(r/w/x)等基本属性,以及是否为目录(d)与文件(-)或连接文件(l)等属性.此外,Linux还可以设置其他系统安全属性,使用chattr来设置,以lsattr来查看,最重要的是可以设置其不可修改的特性,即便是文件的拥有者都不能进行修改.这个属性相当重要,尤其是在安全机制方面(security). 文件默认权限:umask 当建立一个新的文件或目录时,它的默认属性是与umask有关的.通常,umask就是指定当前用户在建立文件或目录时的属性默认值.那么,

ActiveMQ实现负载均衡+高可用部署方案

一.架构和技术介绍 1.简介 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.完全支持JMS1.1和J2EE 1.4规范的JMS Provider实现 2.activemq的特性 1. 多种语言和协议编写客户端.语言: Java, C, C++, C#, Ruby, Perl, Python, PHP.应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP 2. 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息

ActiveMQ实现负载均衡+高可用部署方案(转)

本文转自:http://www.open-open.com/lib/view/open1400126457817.html%20 一.架构和技术介绍 1.简介 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现 2.activemq的特性 1. 多种语言和协议编写客户端.语言: Java, C, C++, C#, Ruby, Perl, Python, PHP.应用协议: OpenWire,Stomp

[转载]ActiveMQ实现负载均衡+高可用部署方案

转载于 http://www.open-open.com/lib/view/open1400126457817.html 一.架构和技术介绍 1.简介 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现 2.activemq的特性 1. 多种语言和协议编写客户端.语言: Java, C, C++, C#, Ruby, Perl, Python, PHP.应用协议: OpenWire,Stomp RES

ActiveMQ 集群配置 高可用

自从activemq5.9.0开始,activemq的集群实现方式取消了传统的Pure Master Slave方式,增加了基于zookeeper+leveldb的实现方式,其他两种方式:目录共享和数据库共享依然存在. 1.Master-Slave部署方式 1).Shared Filesystem Master-Slave方式 2).Shared Database Master-Slave方式 3).Replicated LevelDB Store方式 第一种方案同样支持N个AMQ实例组网,但由

高可用消息队列集群zookeeper+leveldb+activemq

正在上传中---- 预计8月底完成

PHP中使用ActiveMQ实现消息队列

前面我们已经学了如何部署ActiveMQ, 我们知道通过ActiveMQ的一个管理后台可以查看任务队列. 今天 用PHP来操作ActiveMQ,我们可以借助一个第三方扩展. 下载: composer require fusesource/stomp-php:2.0.* 然后新建test.php: <?php require __DIR__.'/vendor/autoload.php'; //引入自动加载的文件 $connect = new \FuseSource\Stomp\Stomp('tcp