ActiveMQ高可用方案(HA)之MasterSlave集群部署(一)

ActiveMQ 主备方式部署方案 主要是通过共享存储介质来实现master和slave的热备,争抢到共享存储介质控制权的作为Master,共享存储介质可以是文件,或者数据库等。

  • 共享存储文件方案(Shared File System Master Slave)
  • 数据库方案(JDBC Master Slave)
  • Replicated LevelDB Store

操作配置一览表

节点名称 管理端口 集群通讯端口 服务目录
node2181 2181 2887:3887 /usr/local/activemq-cluster/node2181
node2182 2182 2888:3888 /usr/local/activemq-cluster/node2182
node2183 2183 2889:3889 /usr/local/activemq-cluster/node2183

集群操作方案

共享存储文件方案(Shared File System Master Slave)

  • 原理

基本上,您可以从同一共享文件系统目录中运行任意数量的代理。抢占文件排他锁的第一个代理是主代理。如果该代理去世并释放锁,则另一个代理将接管。从代理位于一个循环中,试图从主代理获取锁。这种方式其实只要两个节点即可完成主备方案。
如下图,初始化一主两备,当主机异常后,两个备机将抢占文件排它锁,抢到锁的一方称为新的主机
正常节点
主机故障后重启

  • 实施

这种方案比较简单,在linux上创建三个节点分别配置相关端口,并且通过如下配置文件,将三个节点的存储文件均制定到同一个,即可完成集群的搭建。

  • 重点配置文件(activemq.xml)

kahaDB 方式

<persistenceAdapter>
  <kahaDB directory="/sharedFileSystem/sharedBrokerData"/>
</persistenceAdapter>

levelDB 方式

<persistenceAdapter>
  <levelDB directory="/sharedFileSystem/sharedBrokerData"/>
</persistenceAdapter>

amq方式

<persistenceAdapter>
  <amqPersistenceAdapter directory="/sharedFileSystem/sharedBrokerData"/>
</persistenceAdapter>

参考源地址:http://activemq.apache.org/shared-file-system-master-slave

  • 数据库方案(JDBC Master Slave)

我们以MySQL方案来实现

 <persistenceAdapter>
 		<!-- 指定数据源 -->
        <jdbcPersistenceAdapter dataDirectory="activemq-data" dataSource="#mysql-ds"/>
    </persistenceAdapter>
  <!-- MySql DataSource Sample Setup -->
  <bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/>
    <property name="username" value="activemq"/>
    <property name="password" value="activemq"/>
    <property name="poolPreparedStatements" value="true"/>
  </bean> 

参考源地址:http://activemq.apache.org/jdbc-master-slave

Replicated LevelDB Store

这种方式是使用了leveldb + zookeeper 实现了集群,将在单独章节去说明

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值