ActiveMQ主从配置
@author:wushuang
数据库版本:MySQL 5.7
操作系统:CentOS Linux 7
ActiveMQ版本:apache-activemq-5.14.3
一、前言
官网介绍ActiveMQ有三种方式来实现Master/Slave,分别是Shared File System Master Slave、JDBC Master Slave、Replicated LevelDB Store。其中Shared File System Master Slave需要搭建共享文件系统,查了一下实现比较麻烦,所以放弃;Replicated LevelDB Store已经被官方废弃并移除,且只有5.9.0版本才可用;故采用JDBC Master Slave模式进行ActiveMQ的主从配置。
链接为:http://activemq.apache.org/masterslave.html
二、安装
1.vmware新建两个虚拟机,我安装的系统是CentOS 7。
2.安装JDK,采用openjdk1.8。
3.从官网下载ActiveMQ,解压到两个虚拟机的指定路径。
具体安装指导可见官网:http://activemq.apache.org/getting-started.html
三、安装数据库
JDBC Master Slave支持多种数据库,本次示例用MySQL。
机器性能有限,故安装MySQL在其中一台虚拟机上。生产环境ActiveMQ和MySQL不应安装在同一机器上。
1.安装完成后登陆MySQL,创建用户manager 密码也为manager:
CREATE USER manager@'%' identified by 'manager';
2.创建数据库activemq: CREATE DATABASE activemq;
3.授权manager拥有对数据库activemq的所有操作权限:
GRANT ALL on activemq.* TO manager@'%' identified by 'manager';
4.刷新权限:FLUSH PRIVILEGES;
四、配置Master/Slave
1.打开其中一台虚拟机中的[activemq_install_dir]/conf/activemq.xml,于</broker>后添加数据源bean,我采用的是c3p0:
2.修改persistenceAdapter的内容为下图:
其中createTablesOnStartup第一次启动时为true,后面需要置为false,无需每次启动都建表。
3.复制此activemq.xml到另一台虚拟机的ActiveMQ的相同路径下,覆盖原先的配置文件,并修改jdbcUrl的IP为前一台机器的IP。
4.下载mchange-commons-java-0.2.10.jar、c3p0-0.9.5.1.jar、mysql-connector-java-5.1.38.jar,并将这三个jar复制到两台机器ActiveMQ下的lib目录下([activemq_install_dir]/lib)。
5.启动其中一台虚拟机的ActiveMQ,此MQ成为Master,数据库activemq中会自动新建三张表:
ACTIVEMQ_ACKS、ACTIVEMQ_LOCK、ACTIVEMQ_MSGS
6.启动另一台虚拟机的ActiveMQ,此MQ变为Slave,定时去获取Master的独享锁,如图所示:
7.此时关闭master ActiveMQ,则slave ActiveMQ获取独享锁变为master,如图:
8.再次开启刚才关闭的ActiveMQ,则此MQ变为Slave,依旧定时尝试获取master的独享锁,如图:
五、备注
1.通过JDBC Master Slave,可实现ActiveMQ的高可用,但压力都集中在数据库上了,所以数据库是主要的性能瓶颈。
2.本示例中MySql只有一个实例,如果MySQL挂了,则ActiveMQ也不能用了,故生产环境也需要避免MySQL的单点故障,采用集群或者主备切换以避免这种情况。
相关推荐
3. **主从配置**:在主节点的 `activemq.xml` 中配置 master-slave 组件,包括 slave URL 和其他相关参数。同时,确保 slave 节点的配置文件指向主节点。 ### 启动与验证 1. **启动 MQ**:先启动 master,然后启动...
ActiveMQ 基于 ZooKeeper 的主从(LevelDB Master/Slave)搭建 ActiveMQ 是一个流行的开源消息中间件,它提供了高性能、可靠的消息队列服务。在分布式系统中,ActiveMQ 可以作为消息中间件,实时同步数据,避免单...
这种配置是ActiveMQ推荐的策略之一,提供了三种不同的实现方式:Pure Master Slave、Shared File System Master Slave和JDBC Master Slave。 在安装和配置ActiveMQ Master-Slave集群之前,需要准备以下环境: 1. ...
在描述中提到了两种主要的ActiveMQ高可用性设置:Master/Slave架构和failover协议。 Master/Slave架构是ActiveMQ实现高可靠性的核心机制。这种模式下,系统分为一个主服务器(Master)和一个或多个从服务器(Slave...
- **Broker Master/Slave 主从模式**:在这种模式下,两个或多个Broker节点组成主从关系,当主节点故障时,备用节点会接管服务,确保服务连续性。 - **Broker Network 集群**:通过网络连接多个Broker,形成一个...
2. **配置Slave Broker**:设置`masterConnectorURL`指向Master Broker的连接地址。 #### 七、自动清理离线客户端 为了避免离线客户端长时间占用内存,可以通过以下配置项进行设置: 1. **...
Master-slave URI 配置可以实现主从复制,第一个 URL 需要是 master,其他的是 slave。 NetworkConnector 配置:NetworkConnector 配置用于指定 network connector 的行为,例如是否使用指数退避重连机制、网络消费...
- Shared File System Master Slave:共享文件系统用于同步主从节点的状态,确保一致性。 - JDBC Master Slave (DB only):使用数据库存储消息,依赖数据库的事务和复制特性。 - JDBC Master Slave (File & DB):...
在Failover模式下,ActiveMQ通常以主从模式部署:其中一个实例作为主节点(Master),另一个实例作为从节点(Slave)。当主节点出现故障或宕机时,从节点会自动升级为主节点,实现服务的无缝切换。然而,在这个过程...
本例中,我们将在同一台CentOS 7.5 x64机器上启动两个实例,分别为master和slave。每个实例的JDK版本为1.8.0_171,ActiveMQ版本为5.15.4。为了区分管理接口和服务接口,它们的端口配置不同。目录结构如下: - ...
- **2.3 主从集群 (Master-Slave)** - **定义**: 主从集群是一种常见的集群配置模型,其中主节点负责处理大部分请求,而从节点则作为备用节点,在主节点出现故障时接管任务。 - **功能**: 在ActiveMQ中,主从集群...
这可能涉及到`master-slave`配置或`shared store`模式,前者通过主从复制实现,后者则允许所有Broker共享同一存储,实现数据同步。 3. **故障检测与恢复**:在静态Broker集群中,ActiveMQ会持续监控集群中其他...
此外,还考虑了主从(Master-Slave)模式,以考察高可用性设置对性能的影响。 ### 压测环境 压测环境包括选择的压测工具、部署方式、硬件配置和参数调整。压测工具可能是Apache JMeter或其他适合的消息队列性能测试...
2. **Master-Slave 模式**:这是最常见的高可用配置方式,一个broker作为主节点,其他broker作为从节点。主节点处理所有的生产者和消费者请求,而从节点处于监听状态。如果主节点故障,从节点自动接管。 3. **网络...
- `masterslave:(tcp://host1:61616,tcp://host2:61616,tcp://..)`:定义主从关系,第一个URL为主Broker,其余为从Broker。 网络连接器的配置参数有很多,例如: - `initialReconnectDelay`和`maxReconnectDelay`...
- **Master-Slave**: 主从模式下,一台服务器作为主节点,其他服务器作为从节点。当主节点故障时,从节点可以自动接管服务。 - **Multicast**: 多播模式下,所有服务器都处于活跃状态,通过多播协议来同步消息状态。...
- **Master-Slave配置**:介绍主从复制模式,确保服务的持续可用性。 7. **安全性与管理** - **身份验证与授权**:理解如何设置用户和角色,实现对ActiveMQ资源的安全访问控制。 - **监控与日志**:探讨如何通过...
1. Master-slave配置:通过复制策略,可以创建主从复制的集群,当主节点故障时, slave节点可以无缝接管。 2. Network of Brokers:多台Broker可以组成网络,实现消息的跨Broker路由,提高系统的可扩展性和容错性。 ...