ActiveMq 集群部署 三种方案 + 负载均衡+其他细节点

本文详细介绍了ActiveMq的集群部署方案,包括kahaDB、levelDB和数据库存储方式,并讨论了负载均衡及高可用的实现。重点讲解了levelDB通过Zookeeper实现主从复制,以及数据库锁策略确保高可用。同时提到了静态网络连接和动态网络连接的配置,以及在性能测试中各种部署方式的比较。最后,文章提供了灾备方案和优化建议。
摘要由CSDN通过智能技术生成

备忘用

消息的存储三种方式 : kahaDB ,levelDB,数据库。

(1) kahaDB 可以通过文件共享来实现 高可用,需要对linux进行配置,这里不做具体介绍。

(2)levelDB 是 activeMq 支持的一种高可用策略 ,需要搭建至少三个(奇数个)节点的zk集群 ,我们的activeMq 也是需要三个。
(3)基于数据库实现activeMq高可用 。

(4)通过负载可以实现“高可用”,缺陷是,挂掉的mq 中积压的消息,只能等他恢复,才能继续消费(半可用)。

负载实现

静态网络连接 & 动态网络连接 :

两个mq 的配置文件中,分别配置静态网络连接标签,uri=static 分别指向对方的ip 。这样他们之间可以互相消费,除此之外我们还需配置消息回流,这样 brokerA 的消费者去消费 队列 queueMsg时 , brokerA 没有回去brokerB要,当 brokerB 的消费者去消费 队列 queueMsg 时,brokerB 会从 brokerA中要回来,就这样互相来回消费。
弊端 : 当brokerA要到queueMsg 队列上的消息时宕机了,该消息只能等brokerA恢复了在提供给消费者们。

<!--静态网络连接-->   
<networkConnectors> 
         <networkConnector uri="static:(tcp://127.0.0.1:61617)"  />
</networkConnectors>

<!--动态网络连接,用的较少-->
<networkConnectors> 
         <networkConnector uri="multicast://default" name="bridge" dynamicOnly="false"                 conduitSubscriptions="true" decreaseNetworkConsumerPriority="false">
</networkConnectors>

配置好后, 我们在客户端通过 : failover 来进行对两个 mq 的连接,randomize\=true 我们客户端会随机对brokerA,brokerB 进行连接,当 brokerA宕机了,他会将所有的连接都打在brokerB上 。 randomize\=false , 所有的客户端连接都会打在第一个ip:port 上,只有第一个挂了,他才会打在第二个mq 上。

mq.property 文件

mq.brokerURL=failover\:(tcp\://47.3.4.60\:61616,tcp\://47.13.12.16\:61616)?randomize\=true&initialReconnectDelay\=1000&maxReconnectDelay\=30000

spring-mq.xml 文件

<bean id="targetConnectionFactory"class="org.apache.activemq.ActiveMQConnectionFactory">
        <!-- ActiveMQ服务地址 -->
        <property name="brokerURL" value="${mq.brokerURL}" />
        <property name="userName" value="${mq.userName}"></property>
        <property name="password" value="${mq.password}"></property>
</bean>

mysql 实现高可用

说明 :客户端连接同上 。

在两个(以上)mq 的配置文件中(activeMq.xml) 修改如下配置 :

修改 persistenceAdapter
<persistenceAdapter>
        <!--kahadb 存储-->
        <!--<kahaDB directory="${activemq.data}/kahadb_slavor"/>  -->
        <!--mysql 存储-->
        <jdbcPersistenceAdapter  useDatabaseLock="true" dataSource="#mysql-ds"/>
</persistenceAdapter>   

<!--mysql 前 加 缓存-->
<persistenceFactory>
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值