Java消息队列-activemq集群与配置
2017-12-28 20:59
573 查看
主从集群方案:
Shared storage master/slave 共享存储
Replicated LevelDB Store 基于复制的LevelDB Store
基于复制的LevelDB Store的原理
三者配置同一个Zookeeper结点,
Zookeeper选举A为主(此时只有A具有服务的能力),A获得消息后本地储存,然后通过Zookeeper同步到B、C,
B、C分别对消息进行储存。
Broker Cluster 不具备高可用,它正在处理的消息可能会丢失。
但是它做到了负载均衡,也就是说各节点之间的消息可以被共用。
三台服务器,达到既可以支持高可用,又可以达到负载均衡的 效果
AB、AC组成 消息同步
BC组成 主从
按顺序启动ABC,
B拿到持久化资源成为主,C为从。
A为B的消息同步服务器,A不能持久化->通过同步->B进行持久化
A、B均可提供服务,达到 负载均衡+高可用
A宕机,B可继续提供服务(高可用)。
B恢复,可继续消费B上的消息;A上的新消息也可以被B消费。(集群未受影响)
B宕机,释放资源排它锁,C获得资源为主
B恢复,B为从
配置方案:
Node-A:
Node-B:
Node-C:
代码也就是在前一章使用的代码,只是在url处使用failover();
前一章: Java消息队列-ActiveMq代码记录
图片来源: 慕课网
Shared storage master/slave 共享存储
Replicated LevelDB Store 基于复制的LevelDB Store
基于复制的LevelDB Store的原理
三者配置同一个Zookeeper结点,
Zookeeper选举A为主(此时只有A具有服务的能力),A获得消息后本地储存,然后通过Zookeeper同步到B、C,
B、C分别对消息进行储存。
Broker Cluster 不具备高可用,它正在处理的消息可能会丢失。
但是它做到了负载均衡,也就是说各节点之间的消息可以被共用。
三台服务器,达到既可以支持高可用,又可以达到负载均衡的 效果
AB、AC组成 消息同步
BC组成 主从
按顺序启动ABC,
B拿到持久化资源成为主,C为从。
A为B的消息同步服务器,A不能持久化->通过同步->B进行持久化
A、B均可提供服务,达到 负载均衡+高可用
A宕机,B可继续提供服务(高可用)。
B恢复,可继续消费B上的消息;A上的新消息也可以被B消费。(集群未受影响)
B宕机,释放资源排它锁,C获得资源为主
B恢复,B为从
配置方案:
Node-A:
activemq.xml: <transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> </transportConnectors> <networkConnectors> <networkConnector name="local_network" uri="static:(tcp://127.0.0.1:61617,tcp://127.0.0.1:61618)"/> </networkConnectors> jetty.xml: <bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start"> <!-- the default port number for the web console --> <property name="host" value="0.0.0.0"/> <property name="port" value="8161"/> </bean>
Node-B:
activeMQ.xml: <persistenceAdapter> <kahaDB directory="/acticeMQ-demo/kahadb"/> </persistenceAdapter> <transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:61617?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> </transportConnectors> <networkConnectors> <networkConnector name="local_network" uri="static:(tcp://127.0.0.1:61616)"/> </networkConnectors> jetty.xml: <bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start"> <property name="host" value="0.0.0.0"/> <property name="port" value="8162"/> </bean>
Node-C:
与B类似,下面只给出区别处: tcp://0.0.0.0:61618 <property name="port" value="8163"/>
代码也就是在前一章使用的代码,只是在url处使用failover();
前一章: Java消息队列-ActiveMq代码记录
图片来源: 慕课网
相关文章推荐
- 消息队列系列之ActiveMQ(JMS、集群配置)
- 消息队列ActiveMQ(二)——安全配置
- Java消息队列-Spring整合ActiveMq
- zookeeper+activemq配置消息中间件集群
- Java消息队列-Spring整合ActiveMq
- ActiveMQ消息队列主从配置
- RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)
- ActiveMQ消息队列的集群安装及应用(二)
- 消息队列activemq整合spring发送端和接收端配置
- 详解Java消息队列-Spring整合ActiveMq
- RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)
- java消息队列ActiveMQ的简单使用
- Java消息队列-Spring整合ActiveMq
- Active MQ 5.5.1配置消息队列集群(1) Pure Master-Slave静态复制
- java通过ActiveMQ实现JMS的消息队列实例
- JAVA 消息队列ActiveMQ
- Java消息队列--ActiveMQ 实战
- RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)
- Java消息队列-Spring整合ActiveMq
- RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)