activemq master-slave集群安装文档
![activemq master-slave集群安装文档](https://img.360docs.net/img21/010b3j8cx1fwy4cg41x3-11.webp)
![activemq master-slave集群安装文档](https://img.360docs.net/img21/010b3j8cx1fwy4cg41x3-92.webp)
ActiveMQ master slave集群安装手册1.简介
在一个网络内运行多个brokers或者stand alone brokers时存在一个问题,这就是消息在物理上只被一个broker持有,因此当某个broker失效,那么你只能等待直到它重启后,这个broker上的消息才能够被继续发送(如果没有设置持久化,那么在这种情况下,消息将会丢失)。Master Slave 背后的想法是,消息被复制到slave broker,因此即使master broker遇到了像硬件故障之类的错误,你也可以立即切换到slave broker而不丢失任何消息。
Master Slave是目前ActiveMQ推荐的高可靠性和容错的解决方案。主要有Pure Master Slave、Shared File System Master Slave、JDBC Master Slave三种。Master Broker和Slave Broker可以部署在同一台机器上,也不可部署在不同的机器上。本文档介绍JDBC Master Slave的安装和验证步骤,为了保证高可用性Master Broker和Slave Broker部署在不用的服务器上。Master Broker和Slave Broker的配置基本一致,谁先启动获得数据库的锁谁就是Master Broker。
2.安装前准备
安装环境
操作系统:Red Hat Enterprise Linux 5
JDK版本:JRockit JDK 1.5.0_12-b04
activemq版本:apache-activemq-5.4.2
数据库:oracle 10
服务器:需要两台服务器。文档中以HOST01和HOST02标示这两台服务器软件准备
1.安装JDK,并设置JAVA_HOME、PATH等环境变量。使用java –version验证
java安装和环境变量设置
2.下载apache-activemq-5.4.2,下载地址为:
https://www.360docs.net/doc/241953536.html,/dyn/closer.cgi?path=%2Factivemq%2Fapache-active mq%2F5.4.2%2Factivemq-parent-5.4.2-source-release.tar.gz
3.准备oracle 10的JDBC驱动程序ojdbc1
4.jar
3.安装步骤
Master broker的安装
将Master broker安装在HOST01主机上,以下步骤均在HOST01主机上进行1.将apache-activemq-5.4.2-bin.tar.gz和ojdbc14.jar上传到linux下active的
安装目录。后续以$ACTIVEMQ_WORK_DIR代表active的安装目录
2.在$ACTIVEMQ_WORK_DIR目录下解压缩apache-activemq-5.4.2-bin.tar.gz文件,
解压缩后activeMQ相关文件放在$ACTIVEMQ_WORK_DIR/apache-activemq-5.4.2目录下
3.将ojdbc1
4.jar拷贝到$ACTIVEMQ_WORK_DIR/apache-activemq-
5.4.2/lib目
4.打开并且修改$ACTIVEMQ_WORK_DIR/apache-activemq-
5.4.2/conf目录下的
activemq.xml文件
A.修改broker的名字
找到
修改为
B.修改持久化
找到
修改为
并且在后面添加数据库连接,语句如下:
C.修改监听端口号
找到
修改为
D.定义死队列规则
找到
修改为:
注:标有红色部分根据实际情况配置。
Slave Broker的安装
将Slave broker安装在HOST02主机上,以下步骤均在HOST02主机上进行。Master broker与Slave Broker安装的差异处所在主机不一致和步骤四中修改
broker的名字不一致外,其它的无差异。
1.将apache-activemq-5.4.2-bin.tar.gz和ojdbc14.jar上传到linux下active的安装
目录。后续以$ACTIVEMQ_WORK_DIR代表active的安装目录
2.在$ACTIVEMQ_WORK_DIR目录下解压缩apache-activemq-5.4.2-bin.tar.gz文件,解压缩
后activeMQ相关文件放在$ACTIVEMQ_WORK_DIR/apache-activemq-5.4.2目录下
3.将ojdbc1
4.jar拷贝到$ACTIVEMQ_WORK_DIR/apache-activemq-
5.4.2/lib目
录下
4.打开并且修改$ACTIVEMQ_WORK_DIR/apache-activemq-
5.4.2/conf目录下的
activemq.xml文件
A.修改broker的名字
找到
修改为
B.修改持久化
找到
修改为
并且在后面添加数据库连接,语句如下:
C.修改监听端口号
找到
修改为
D.定义死队列规则
找到
修改为:
注:标有红色部分根据实际情况配置。
4.验证步骤
验证master broker
1.在host01上执行以下语句,并查看输出到控制台的日志是否报错
注:以sh activemq console启动,Ctrl+C将会停止activeMQ
2.输入http://host01的IP:8161/admin/,如果出现下面页面则master broker正常
启动
3.查看数据库,如果数据库中自动新建ACTIVEMQ_ACKS、
ACTIVEMQ_LOCK、ACTIVEMQ_MSGS三张表则正常
验证slave broker
1.在host02上执行以下语句,并查看输出到控制台的日志
2.如果控制台中无错误信息,且输出“Attempting to acquire the exclusive lock to
become the Master broker”则表示slave 正常启动
验证切换
验证master broker挂了后,slave broker是否变成master broker
1.在host01上,在启动activemq的窗口,按Ctrl+C,停止activeMQ,输出下
面信息
2.如果host02的activeMQ窗口输入下面,信息则切换正常
INFO | Becoming the master on dataSource: https://www.360docs.net/doc/241953536.html,mons.dbcp.BasicDataSource@155bdde
INFO | ActiveMQ 5.4.2 JMS Message Broker (broker2) is starting
INFO | For help or more information please see: https://www.360docs.net/doc/241953536.html,/ INFO | Listening for connections at: tcp://host02:61611
INFO | Connector openwire Started
INFO | ActiveMQ JMS Message Broker (broker2, ID:host02-38821-1309329470448-0:1) started
INFO | jetty-7.1.6.v20100715
INFO | ActiveMQ WebConsole initialized.
INFO | Initializing Spring FrameworkServlet 'dispatcher'
INFO | ActiveMQ Console at http://0.0.0.0:8161/admin
INFO | Initializing Spring root WebApplicationContext
INFO | camel-osgi.jar/camel-spring-osgi.jar not detected in classpath
INFO | Apache Camel 2.4.0 (CamelContext: camel) is starting
INFO | JMX enabled. Using ManagedManagementStrategy.
INFO | Found 4 packages with 15 @Converter classes to load
INFO | Loaded 146 type converters in 0.908 seconds
WARN | Broker localhost not started so using broker2 instead
INFO | Connector vm://localhost Started
INFO | Route: route1 started and consuming from: Endpoint[activemq://example.A]
INFO | Started 1 routes
INFO | Apache Camel 2.4.0 (CamelContext: camel) started in 2.337 seconds INFO | Camel Console at http://0.0.0.0:8161/camel
INFO | ActiveMQ Web Demos at http://0.0.0.0:8161/demo
INFO | RESTful file access application at http://0.0.0.0:8161/fileserver
INFO | Started SelectChannelConnector@0.0.0.0:8161