ActiveMQ集群搭建提供高可用和负载均衡服务

  • ActiveMQ集群方式master和broker集群
 高可用负载均衡
Master/Slave(主从)

broker cluster

结合上面的情况,如果说要搭建高可用和负载均衡服务,需要结合Master和Broker两种集群方式.

节点B、C和A之间搭建broker集群方式,B和C搭建主从集群.当节点B获取资源成为master时,节点A和B对外提供服务,节点A和B之间消息同步,A接受的消息,B和消费,反之亦然.当节点B挂了,节点C获取资源成为主节点和节点A负载均衡提供服务,当节点A挂了时,只会有单节点提供服务,不影响服务的运行.注意节点A不可当做生产者提供服务,只可当做消费者连接,如果将节点A连接消费者,当节点A挂了,并且消费者的消息还未同步到节点B或者C时,会导致消息丢失.节点B和C既可以当做消费者连接也可以当做生产者连接,因为他们会将消息持久化,哪怕主节点挂了,从节点也可以读取到消息.

  • 集群方式

Broker-Cluster集群可以采用静态连接和动态连接两种方式.Static和Dynamic

Master/Slave集群

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

(1) kahaDB 可以通过文件共享来实现 高可用,需要对linux进行配置,介绍采用采用这种方式

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

  • 集群搭建

   先复制三份activemq安装文件activemq01,activemq02,activemq03

   activemq01和activemq02,activemq03采用broker集群方式连接.

  activemq02和activemq03采用kahaDB文件共享Master方式集群,文件路径/home/iflytek/activemq/activemq/kahadb

   修改activemq01/conf的activemq.xml文件,指定动态连接02和03

<transportConnectors>
            <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
           <!--<transportConnector name="amqp" uri="amqp://127.0.0.1:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="stomp" uri="stomp://127.0.0.1:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="mqtt" uri="mqtt://127.0.0.1:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="ws" uri="ws://127.0.0.1:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>-->
        </transportConnectors>
        <networkConnectors>
                 <networkConnector name="loacl_network" uri="static:(tcp://127.0.0.1:61617,tcp://127.0.0.1:61618)" />
        </networkConnectors>

   修改activemq02/conf的activemq.xml文件,指定动态连接02和03

<persistenceAdapter>
            <kahaDB directory="/home/iflytek/activemq/activemq/kahadb"/>
        </persistenceAdapter>

<transportConnectors>
            <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61617?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
           <!--<transportConnector name="amqp" uri="amqp://127.0.0.1:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="stomp" uri="stomp://127.0.0.1:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="mqtt" uri="mqtt://127.0.0.1:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="ws" uri="ws://127.0.0.1:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>-->
        </transportConnectors>

                <networkConnectors>
                        <networkConnector name="loacl_a" uri="static:(tcp://127.0.0.1:61616)" />
                </networkConnectors>

activemq03的配置参考activemq02,注意修改端口为 61618和8163

集群部署视频参考:activemq集群搭建

  • 项目集成activemq
生产者
 
spring.activemq.broker-url=failover:(tcp://localhost:61617,tcp://localhost:61618)?randomize=false
消费者
 
spring.activemq.broker-url=failover:( tcp://localhost:61616 ,tcp://localhost:61617,tcp://localhost:61618)?randomize=false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值