`

zookeeper与activemq最新存储replicatedLevelDB整合

 
阅读更多
测试环境:三台VM虚拟机centos6.4 64位 mini版,IP分别为192.168.1.191/192/193.

测试目的:测试activemq的failover以及与zookeeper的整合

测试原因:activemq有多种持久化模式,但是都可能存在单点故障的情况。与zookeeper整合后基本可以保证(n-1)/2的稳定性。其中n表示服务器数量。

测试备注:该模式下还是单节点负载,只是由于引入了zookeeper的监测机制。保证多个activemq服务在同一时间内只有一个服务对外开放。

性能分析:在环境搭载完成后测试了下性能负载,在单台无zookeeper模式下用kahadb负载能打到12000条/秒,但是在引入zookeeper后只能有1500条/秒左右,

但是由于本次测试不是性能调优,只是为了保证jms服务的可用性,因此没有进行性能优化调整。













1、下载zookeeper

cd /opt && wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.5.tar.gz

2、下载activemq

cd /opt && wget

http://www.apache.org/dyn/closer.cgi?path=/activemq/apache-activemq/5.9.0/apache-activemq-5.9.0-bin.tar.gz



解压这两个文件,都放在opt目录下。

以下配置是分别在192.168.1.191 192.168.1.192 192.168.1.193三台服务器上进行配置。

这种配置方案能够实现(n-1)/2的容错率,也就是三台服务器允许挂一台,五个能当掉2个,依次类推。



3、更改zookeeper配置

cd /opt/zookeeper-3.4.5/conf

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg

然后配置为三个节点

server.1=192.168.1.191:2888:3888

server.2=192.168.1.192:2888:3888

server.3=192.168.1.193:2888:3888



然后需要cd /tmp/zookeeper

新建一个名字叫做myid的文件,里面写上当前服务的优先级?基本上是数字 注意这里的数字要和zoo.cfg文件中的server.*吻合,比如我的配置是191这台机器是叫做1  192这台机器是叫做2  

vi myid

4、更改activemq的配置

vi /opt/apache-activemq-5.9.0/conf/activemq.xml

找到

<persistenceAdapter>

            <kahaDB directory="${activemq.data}/kahadb"/>

        </persistenceAdapter>

这种字样的配置项目,默认情况下activemq是走kahadb存储的,这里替换为:

<persistenceAdapter>

    <replicatedLevelDB

      directory="${activemq.data}/leveldb"

      replicas="3"

      bind="tcp://0.0.0.0:0"

      zkAddress="192.168.1.191:2181,192.168.1.192:2181,192.168.1.193:2181"

      zkPassword="password"

hostname="192.168.1.191"

      sync="local_disk"

      zkPath="/activemq/leveldb-stores"

      />

  </persistenceAdapter>



这里不同机器上的hostname要设置为不同。



5、剩下的就是开始服务了。

首先开始三台服务器上的zookeeper服务:

/opt/zookeeper-3.4.5/bin/zkServer.sh start

然后分别开启三台服务器上的activemq服务:

/opt/apache-activemq-5.9.0/bin/activemq start



好了,基本没什么问题了。

然后就开始http://192.168.1.191:8161 或者http://192.168.1.192:8161

或者http://192.168.1.193:8161

这三个链接看哪个能访问,哪个消息服务器则表示存活提供服务。

6、测试

关掉191、192、193其中任何一台,经过测试能够正常提供服务,客户端会自动切换连接,达到预期目的。



6、客户端连接使用failover方案:

failover:(tcp://192.168.1.191:61616,tcp://192.168.1.192:61616,tcp://192.168.1.193:61616)?initialReconnectDelay=1000

分享到:
评论
2 楼 love398146779 2015-12-23  
2台跟1台一样的效果。
1 楼 elvwong 2015-09-08  

请问:zookeeper 可以配置2台吗?,

相关推荐

    Zookeeper+ActiveMQ测试.rar

    4. **状态管理**:ZooKeeper可以存储和更新ActiveMQ集群的配置信息,便于动态调整集群配置。 **LevelDB** 在描述中提到的"LevelDB"是Google开源的一个轻量级、高性能的键值存储数据库,常用于存储和检索小规模数据...

    zookeeper与activemq整合

    ### Zookeeper与ActiveMQ整合详解 #### 一、概述 在分布式系统中,为了提高系统的稳定性和可用性,通常会采用多种技术手段来确保服务的持续运行。Zookeeper与ActiveMQ的整合是一种常见且有效的方法,它通过...

    springmvc+dubbo/zookeeper+activemq+redis+mybatis+druid

    这些技术组合在一起,构建了一个复杂的企业级应用架构,包括前端展示(SpringMVC)、后端服务(Dubbo)、服务注册与发现(Zookeeper)、消息中间件(ActiveMQ)、高速缓存(Redis)、数据库访问(MyBatis)以及...

    windows server下zookeeper+activemq集群部署

    在Windows Server环境下构建Zookeeper和ActiveMQ的集群部署是一个实现高可用性和负载均衡的重要实践。以下将详细阐述这个过程中的关键知识点。 首先,我们需要安装Java Development Kit (JDK)。确保下载并安装与...

    Java高级课程(nginx+redis+zookeeper+activemq+storm+dubbo+netty+jvm+并发编程锁+项目实战)

    Java高级互联网架构师系统培训班课程Java高级互联网架构师系统培训班课程Java高级互联网架构师系统培训班课程

    zookeeper+activemq+leveldb搭建高可用消息队列

    基于zookeeper+activemq+leveldb搭建 高性能 高可用的消息队列

    基于Apache ZooKeeper和ActiveMQ的分布式软件测试方法.pdf

    整个文档的重点在于介绍如何在分布式测试中利用Apache ZooKeeper的配置管理与集群管理功能以及ActiveMQ的消息传递能力,来提高测试节点的管理效率和测试过程的实时性。这种方法对于云计算环境下软件测试的技术变革...

    activemq和zookeeper资源

    标题中的"activemq"和"zookeeper"是两个在分布式系统中广泛使用的开源软件。activemq是Apache基金会开发的消息中间件,主要用于处理应用程序之间的消息传递,而zookeeper则是一个分布式协调服务,用于管理分布式系统...

    ActiveMQ+zookeeper实现高可用和负载均衡(代码和测试)

    ### ActiveMQ+zookeeper实现高可用和负载均衡 #### 一、背景与目标 在现代分布式系统中,消息中间件如ActiveMQ扮演着重要的角色,它能够帮助应用之间进行可靠的消息传递。为了保证系统的稳定性和可靠性,通常需要...

    dubbo,zookeeper,activemq,redis,fastdfs实战操作文档

    同时,还涉及到服务化的目标、服务子系统划分的考虑、服务接口设计原则,以及对Zookeeper、Redis、ActiveMQ和FastDFS的提及,虽然没有详细操作说明,但这些组件是构建高性能、高可用性分布式系统的基石。在实际部署...

    springBoot2.0.1、zookeeper、dubbo、activemq、redis整合分布式架构

    在构建分布式架构的过程中,SpringBoot 2.0.1、Zookeeper、Dubbo、ActiveMQ 和 Redis 是五款至关重要的技术组件。它们各自扮演着不同的角色,共同为系统的高效运行和扩展性提供支持。 首先,SpringBoot 2.0.1 是...

    (nginx+redis+zookeeper+activemq+storm+dubbo+netty+jvm+并发编程锁+项目实战).txt

    (nginx+redis+zookeeper+activemq+storm+dubbo+netty+jvm+并发编程锁+项目实战)

    ActiveMQ高可用集群(ZooKeeper+LevelDB)安装、配置、高可用测试.docx

    ActiveMQ 高可用集群(ZooKeeper + LevelDB)安装、配置、高可用测试 ActiveMQ 高可用集群是分布式消息队列系统的核心组件之一,旨在提供高可用性和高性能的消息队列服务。在本教程中,我们将详细介绍如何使用 ...

    ActiveMQ与Zookeeper集群测试代码

    标题中的“ActiveMQ与Zookeeper集群测试代码”指的是一个实验或示例项目,旨在演示如何结合这两个组件来构建高可用的消息传递环境。Zookeeper在这里的角色可能是用来管理ActiveMQ集群的状态,实现节点间的选举和故障...

    spring 与ACTIVEMQ整合

    本文将深入探讨如何将Spring与ActiveMQ进行整合,以提升系统的可扩展性和解耦性。 一、Spring与ActiveMQ整合基础 1. **消息中间件概念**:消息中间件是一种软件,它在不同的应用之间传递消息,实现了应用之间的...

    基于zookeeper+levelDB的ActiveMQ集群测试代码

    1. **安装与配置ZooKeeper**: 首先,你需要在集群的每台机器上安装ZooKeeper,配置`conf/zoo.cfg`文件,设置集群节点间的通信地址。例如,如果你有三台服务器,每台服务器都需要包含其他两台服务器的IP。 2. **...

    zookeeper+dubbo+springmvc项目整合

    综上所述,"zookeeper+dubbo+springmvc项目整合"是一个完整的微服务解决方案,利用Zookeeper实现服务的注册与发现,Dubbo进行服务间通信,SpringMVC处理HTTP请求,MongoDB存储非结构化数据,而Maven则确保项目构建与...

    dubbo+sping+zookeeper整合例子完整版(包括步骤文档和所有jar)

    【标题】"dubbo+spring+zookeeper整合案例详解" 【描述】该资源是一个全面的教程,涵盖了将Dubbo、Spring和Zookeeper整合到一起的实际操作步骤,包括完整的配置文件和必要的jar包。遗憾的是,它没有涉及Dubbo与...

    高可用之ActiveMQ高可用集群(ZooKeeper+LevelDB)安装、配置、高可用测试.docx

    - 指定目录:在 ActiveMQ 的配置文件(如`conf/activemq.xml`)中,设置`&lt;replicatedLevelDB&gt;`元素,指定 LevelDB 数据存储目录,例如`${activemq.data}/leveldb`。 - 设置副本数量:`replicas="3"`表示配置了三个...

    activemq集群配置文档

    - **下载 ActiveMQ**:首先下载 Apache ActiveMQ 的最新版本,本例中使用的版本为 `apache-activemq-5.11.1-bin.tar.gz`。 - **Zookeeper 部署**:构建 ZooKeeper 集群,本例中有三个节点,分别是 `192.168.1.111`、...

Global site tag (gtag.js) - Google Analytics