测试环境:三台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
分享到:
相关推荐
4. **状态管理**:ZooKeeper可以存储和更新ActiveMQ集群的配置信息,便于动态调整集群配置。 **LevelDB** 在描述中提到的"LevelDB"是Google开源的一个轻量级、高性能的键值存储数据库,常用于存储和检索小规模数据...
### Zookeeper与ActiveMQ整合详解 #### 一、概述 在分布式系统中,为了提高系统的稳定性和可用性,通常会采用多种技术手段来确保服务的持续运行。Zookeeper与ActiveMQ的整合是一种常见且有效的方法,它通过...
这些技术组合在一起,构建了一个复杂的企业级应用架构,包括前端展示(SpringMVC)、后端服务(Dubbo)、服务注册与发现(Zookeeper)、消息中间件(ActiveMQ)、高速缓存(Redis)、数据库访问(MyBatis)以及...
在Windows Server环境下构建Zookeeper和ActiveMQ的集群部署是一个实现高可用性和负载均衡的重要实践。以下将详细阐述这个过程中的关键知识点。 首先,我们需要安装Java Development Kit (JDK)。确保下载并安装与...
Java高级互联网架构师系统培训班课程Java高级互联网架构师系统培训班课程Java高级互联网架构师系统培训班课程
基于zookeeper+activemq+leveldb搭建 高性能 高可用的消息队列
整个文档的重点在于介绍如何在分布式测试中利用Apache ZooKeeper的配置管理与集群管理功能以及ActiveMQ的消息传递能力,来提高测试节点的管理效率和测试过程的实时性。这种方法对于云计算环境下软件测试的技术变革...
标题中的"activemq"和"zookeeper"是两个在分布式系统中广泛使用的开源软件。activemq是Apache基金会开发的消息中间件,主要用于处理应用程序之间的消息传递,而zookeeper则是一个分布式协调服务,用于管理分布式系统...
### ActiveMQ+zookeeper实现高可用和负载均衡 #### 一、背景与目标 在现代分布式系统中,消息中间件如ActiveMQ扮演着重要的角色,它能够帮助应用之间进行可靠的消息传递。为了保证系统的稳定性和可靠性,通常需要...
同时,还涉及到服务化的目标、服务子系统划分的考虑、服务接口设计原则,以及对Zookeeper、Redis、ActiveMQ和FastDFS的提及,虽然没有详细操作说明,但这些组件是构建高性能、高可用性分布式系统的基石。在实际部署...
在构建分布式架构的过程中,SpringBoot 2.0.1、Zookeeper、Dubbo、ActiveMQ 和 Redis 是五款至关重要的技术组件。它们各自扮演着不同的角色,共同为系统的高效运行和扩展性提供支持。 首先,SpringBoot 2.0.1 是...
(nginx+redis+zookeeper+activemq+storm+dubbo+netty+jvm+并发编程锁+项目实战)
ActiveMQ 高可用集群(ZooKeeper + LevelDB)安装、配置、高可用测试 ActiveMQ 高可用集群是分布式消息队列系统的核心组件之一,旨在提供高可用性和高性能的消息队列服务。在本教程中,我们将详细介绍如何使用 ...
标题中的“ActiveMQ与Zookeeper集群测试代码”指的是一个实验或示例项目,旨在演示如何结合这两个组件来构建高可用的消息传递环境。Zookeeper在这里的角色可能是用来管理ActiveMQ集群的状态,实现节点间的选举和故障...
本文将深入探讨如何将Spring与ActiveMQ进行整合,以提升系统的可扩展性和解耦性。 一、Spring与ActiveMQ整合基础 1. **消息中间件概念**:消息中间件是一种软件,它在不同的应用之间传递消息,实现了应用之间的...
1. **安装与配置ZooKeeper**: 首先,你需要在集群的每台机器上安装ZooKeeper,配置`conf/zoo.cfg`文件,设置集群节点间的通信地址。例如,如果你有三台服务器,每台服务器都需要包含其他两台服务器的IP。 2. **...
综上所述,"zookeeper+dubbo+springmvc项目整合"是一个完整的微服务解决方案,利用Zookeeper实现服务的注册与发现,Dubbo进行服务间通信,SpringMVC处理HTTP请求,MongoDB存储非结构化数据,而Maven则确保项目构建与...
【标题】"dubbo+spring+zookeeper整合案例详解" 【描述】该资源是一个全面的教程,涵盖了将Dubbo、Spring和Zookeeper整合到一起的实际操作步骤,包括完整的配置文件和必要的jar包。遗憾的是,它没有涉及Dubbo与...
- 指定目录:在 ActiveMQ 的配置文件(如`conf/activemq.xml`)中,设置`<replicatedLevelDB>`元素,指定 LevelDB 数据存储目录,例如`${activemq.data}/leveldb`。 - 设置副本数量:`replicas="3"`表示配置了三个...
- **下载 ActiveMQ**:首先下载 Apache ActiveMQ 的最新版本,本例中使用的版本为 `apache-activemq-5.11.1-bin.tar.gz`。 - **Zookeeper 部署**:构建 ZooKeeper 集群,本例中有三个节点,分别是 `192.168.1.111`、...