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

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

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

操作配置一览表

节点名称管理端口集群通讯端口服务目录
node218121812887:3887/usr/local/activemq-cluster/node2181
node218221822888:3888/usr/local/activemq-cluster/node2182
node218321832889: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 实现了集群,将在单独章节去说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值