博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于zookeeper+leveldb搭建activemq集群实现高可用
阅读量:6258 次
发布时间:2019-06-22

本文共 1420 字,大约阅读时间需要 4 分钟。

  hot3.png

自从activemq5.9.0开始,activemq的集群实现方式取消了传统的Master-Slave方式,增加了基于zookeeper+leveldb的实现方式,其他两种方式:目录共享和数据库共享依然存在。本文主要阐述基于zookeeper和leveldb搭建activemq集群,这里需要特别提醒,本文实现的集群仅提供主备功能,避免单点故障,没有负载均衡功能。

    下面开始我们的征途。

一、搭建zookeeper集群

    关于搭建zookeeper集群的文章请参考:

    本文使用zookeeper3.4.6,3台虚拟机:192.168.2.161, 192.168.2.145, 192.168.2.146,zookeeper使用其默认端口:2181。

    zookeeper集群搭建完成之后,我顺便搭建了两套监控系统:taokeeper-monitor和node-zookeeper-browser。前者是淘宝开源的一套监控zookeeper的系统,用了之后感觉得到的有效信息不多,而且集群趋势图总是不显示;后者是用nodejs实现的zookeeper节点数据查看系统,虽然页面不太美观,但是实用。

141555_StUj_1757031.png

                                                           图 1. taokeeper-monitor界面

141645_BAYi_1757031.jpg

                                                    图 2. node-zookeeper-browser界面

二、搭建activemq集群

1、安装

    activemq本身的安装过程很简单,本文不详述,可参照官方的。

2、配置

    在三台机器上完成activemq安装之后,开始集群配置,通过配置使三个activemq实例组成集群。下面的配置在三个实例上保持一致,除了标红部分,主要修改配置文件conf/activemq.xml。

    (1)broker-name的统一

        将broker标签的brokerName属性设置为统一的值,我将这个值设置为“test”,只有三个实例的brokerName一致,zookeeper才能识别它们属于同一个集群。

    (2)persistenceAdapter的配置

        persistenceAdapter设置持久化方式,主要有三种方式:kahaDB(默认方式)、数据库持久化、levelDB(v5.9.0提供支持)。

        本文采用levelDB来进行持久化,并使用zookeeper实现集群的高可用,配置如下:

        首先注释掉原来kahaDB的持久化方式,然后配置levelDB+zookeeper的持久化方式。

    

 

注意上述配置中的hostname属性值,不同的activemq实例对应不同的hostname值,其他两个实例配置的hostname值分别为:192.168.2.145, 192.168.2.146。

3、问题与解决方案

   配置完成之后启动zookeeper集群,然后依次启动三个activemq实例,启动之后报错:"activemq LevelDB IOException handler"。

    原因:版本5.10.0存在的依赖冲突。

    解决方案:

        (1)移除lib目录中的pax-url-aether-1.5.2.jar包;

        (2)注释掉配置文件中的日志配置;      

 

参考:

4、测试

    任意停掉三个实例中的任意一个,activemq服务依然正常运转。

 

欢迎转载,请注明出处:

 

转载于:https://my.oschina.net/chaun/blog/493482

你可能感兴趣的文章
ios xcode 下 报出 ”xx“is missing from working copy 的问题
查看>>
SpringMVC报错The request sent by the client was syntactically incorrect ()
查看>>
网络层封装
查看>>
《c程序设计语言》读书笔记-4.13-递归版本reverse函数
查看>>
background-clip&background-origin
查看>>
论坛迁移日记——discuz X2.5 迁移详细教程
查看>>
拦截器的执行顺序
查看>>
GestureDetector类及其用法
查看>>
String+变量”的操作是在运行时进行
查看>>
(待解决,效率低下)47. Permutations II C++回溯法
查看>>
工作两年
查看>>
201521123081《Java程序设计》 第10周学习总结
查看>>
UI组件-UITextView
查看>>
WPF中ListBox控件选择多个数据项
查看>>
七个小矮人测试随笔
查看>>
yum lnmp
查看>>
OC-id、构造方法
查看>>
Ps操作技巧(快捷键大全)
查看>>
[转] Boost算法
查看>>
自定义ASP.NET Identity(三)- 实现自定义MySQL ASP.NET Identity存储提供程序
查看>>