ActiveMQ桥接以及负载分担
来源:互联网 发布:查看nginx安装目录 编辑:程序博客网 时间:2024/05/16 09:36
ctiveMQ可以实现多个mq之间进行路由,假设有两个mq,分别为brokerA和brokerB,当有一条消息发送到brokerA的队列test中,有一个客户端连接到brokerB上,并且要求获取test队列的消息时,brokerA中队列test的消息就会路由到brokerB上,反之brokerB的消息也会路由到brokerA。
ActiveMQ已经做的很好了,在Conf的目录下有现成的配置文件
可见启动成功了。
如果只通过brokerB来消费消息,可以实现桥接。
如果通过brokerA或brokerB来消费消息,则可实现负载分担。
配置的关键点在于:
- <networkConnectors>
- <networkConnector uri="static:(tcp://localhost:61616)" duplex="true"/>
- </networkConnectors>
ActiveMQ已经做的很好了,在Conf的目录下有现成的配置文件
activemq-static-network-broker1.xml
主要信息摘录:
- <networkConnectors>
- </networkConnectors>
- <transportConnectors>
- <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
- </transportConnectors>
activemq-static-network-broker2.xml
主要信息摘录:
- <networkConnectors>
- <networkConnector uri="static:(tcp://localhost:61616)" duplex="true"/>
- </networkConnectors>
- <transportConnectors>
- <transportConnector name="openwire" uri="tcp://0.0.0.0:61618"/>
- </transportConnectors>
我们需要做的就是将ActiveMQ复制1份,单独放置到另外的文件夹中,这样我们就有了2份activemq啦。
分别将第一份中的activemq-static-network-broker1.xml 改名为activemq.xml 第二份中的activemq-static-network-broker2.xml改名为activemq.xml
分别启动2个activemq,日志输出分别如下
- INFO | JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
- INFO | ActiveMQ 5.5.0 JMS Message Broker (static-broker1) is starting
- INFO | For help or more information please see: http://activemq.apache.org/
- INFO | Listening for connections at: tcp://SONGJIE:61616
- INFO | Connector openwire Started
- INFO | ActiveMQ JMS Message Broker (static-broker1, ID:SONGJIE-60899-1369726682642-0:1) started
- INFO | Connector vm://static-broker1 Started
- INFO | Started responder end of duplex bridge NC@ID:SONGJIE-60962-1369726697807-0:1
- INFO | Network connection between vm://static-broker1#0 and tcp:///127.0.0.1:60965(static-broker1) has been established.
- INFO | JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1100/jmxrmi
- INFO | KahaDB is version 3
- INFO | Recovering from the journal ...
- INFO | Recovery replayed 2 operations from the journal in 0.019 seconds.
- INFO | ActiveMQ 5.5.0 JMS Message Broker (static-broker1) is starting
- INFO | For help or more information please see: http://activemq.apache.org/
- INFO | Listening for connections at: tcp://SONGJIE:61618
- INFO | Connector openwire Started
- INFO | Establishing network connection from vm://static-broker1?async=false&network=true to tcp://localhost:61616
- INFO | Connector vm://static-broker1 Started
- INFO | Network Connector DiscoveryNetworkConnector:NC:BrokerService[static-broker1] Started
- INFO | ActiveMQ JMS Message Broker (static-broker1, ID:SONGJIE-60962-1369726697807-0:1) started
- INFO | Network connection between vm://static-broker1#0 and tcp://localhost/127.0.0.1:61616(static-broker1) has been established.
可见启动成功了。
需要验证一下
一个生产者,生产到broker1,端口为61616,每3秒生产一个消息,总计生产20个。
2个消费着,一个消费者到broker1的61616消费消息,另外一个消费者到broker2的61618端口消费消息。
按照顺序启动生产者、第一消费者、第二消费者,在启动第二消费者的时候需要等第一消费者开始消费的时候再进行启动,以便验证消息被第一消费者消费之后,是否会被第二消费者重复消费。
第一消费者日志,前10个日志略掉。
- 11
- 2013-5-28 15:39:40
- ActiveMQObjectMessage {commandId = 21, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:13, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:13, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726783382, arrival = 0, brokerInTime = 1369726786422, brokerOutTime = 1369726786422, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@f4d6b3, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- ###ActiveMQObjectMessage {commandId = 21, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:13, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:13, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726783382, arrival = 0, brokerInTime = 1369726786422, brokerOutTime = 1369726786422, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@f4d6b3, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- org.apache.activemq.command.ActiveMQObjectMessage
- 12
- 2013-5-28 15:39:43
- ActiveMQObjectMessage {commandId = 22, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:14, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:14, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726786421, arrival = 0, brokerInTime = 1369726789439, brokerOutTime = 1369726789440, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@85f3d6, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- ###ActiveMQObjectMessage {commandId = 22, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:14, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:14, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726786421, arrival = 0, brokerInTime = 1369726789439, brokerOutTime = 1369726789440, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@85f3d6, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- org.apache.activemq.command.ActiveMQObjectMessage
- 13
- 2013-5-28 15:39:46
- ActiveMQObjectMessage {commandId = 23, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:15, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:15, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726789438, arrival = 0, brokerInTime = 1369726792472, brokerOutTime = 1369726792473, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@17af435, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- ###ActiveMQObjectMessage {commandId = 23, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:15, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:15, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726789438, arrival = 0, brokerInTime = 1369726792472, brokerOutTime = 1369726792473, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@17af435, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- org.apache.activemq.command.ActiveMQObjectMessage
- 14
- 2013-5-28 15:39:49
- ActiveMQObjectMessage {commandId = 24, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:16, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:16, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726792470, arrival = 0, brokerInTime = 1369726795504, brokerOutTime = 1369726795504, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@136e10e, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- ###ActiveMQObjectMessage {commandId = 24, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:16, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:16, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726792470, arrival = 0, brokerInTime = 1369726795504, brokerOutTime = 1369726795504, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@136e10e, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- org.apache.activemq.command.ActiveMQObjectMessage
- 15
- 2013-5-28 15:39:52
- ActiveMQObjectMessage {commandId = 26, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:17, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:17, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726795507, arrival = 0, brokerInTime = 1369726798539, brokerOutTime = 1369726798539, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@17490ad, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- ###ActiveMQObjectMessage {commandId = 26, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:17, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:17, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726795507, arrival = 0, brokerInTime = 1369726798539, brokerOutTime = 1369726798539, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@17490ad, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- org.apache.activemq.command.ActiveMQObjectMessage
- 16
- 2013-5-28 15:39:55
- ActiveMQObjectMessage {commandId = 27, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:19, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:19, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726801569, arrival = 0, brokerInTime = 1369726804601, brokerOutTime = 1369726804601, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@1c68b20, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- ###ActiveMQObjectMessage {commandId = 27, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:19, originalDestination = null, originalTransactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:19, producerId = ID:SONGJIE-60899-1369726682642-2:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = null, expiration = 0, timestamp = 1369726801569, arrival = 0, brokerInTime = 1369726804601, brokerOutTime = 1369726804601, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@1c68b20, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- org.apache.activemq.command.ActiveMQObjectMessage
- 18
- 2013-5-28 15:40:01
- ActiveMQMessageConsumer { value=ID:SONGJIE-61352-1369726797634-0:1:1:1, started=true }
- ActiveMQObjectMessage {commandId = 57, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:18, originalDestination = null, originalTransactionId = null, producerId = ID:SONGJIE-61158-1369726746561-0:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:18, expiration = 0, timestamp = 1369726798538, arrival = 0, brokerInTime = 1369726798538, brokerOutTime = 1369726801568, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@b2771, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- ###ActiveMQObjectMessage {commandId = 57, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:18, originalDestination = null, originalTransactionId = null, producerId = ID:SONGJIE-61158-1369726746561-0:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:18, expiration = 0, timestamp = 1369726798538, arrival = 0, brokerInTime = 1369726798538, brokerOutTime = 1369726801568, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@b2771, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- org.apache.activemq.command.ActiveMQObjectMessage
- 17
- 2013-5-28 15:39:58
- ActiveMQObjectMessage {commandId = 63, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:20, originalDestination = null, originalTransactionId = null, producerId = ID:SONGJIE-61158-1369726746561-0:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:20, expiration = 0, timestamp = 1369726804599, arrival = 0, brokerInTime = 1369726804599, brokerOutTime = 1369726807634, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@131ebb3, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- ###ActiveMQObjectMessage {commandId = 63, responseRequired = false, messageId = ID:SONGJIE-61158-1369726746561-0:1:1:1:20, originalDestination = null, originalTransactionId = null, producerId = ID:SONGJIE-61158-1369726746561-0:1:1:1, destination = queue://TOOL.DEFAULT, transactionId = TX:ID:SONGJIE-61158-1369726746561-0:1:20, expiration = 0, timestamp = 1369726804599, arrival = 0, brokerInTime = 1369726804599, brokerOutTime = 1369726807634, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@131ebb3, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false}
- org.apache.activemq.command.ActiveMQObjectMessage
- 19
- 2013-5-28 15:40:04
可以看到第二消费者只消费了序号为17和19的消息,其余消息都被第一消费者消费啦。
http://blog.csdn.net/jaysuper/article/details/8985118
0 0
- ActiveMQ桥接以及负载分担
- ActiveMQ桥接以及负载分担
- web负载分担方案
- ZZ 一致性hash(负载分担)
- keepalived,ipvsadm进行负载分担【todo】
- 实验二:负载分担、浮动静态路由
- 基于流控产品的多链路负载分担的新方法
- 静态路由实现路由备份和负载分担
- 华为USG负载分担及热备配置
- 同一个服务器部署两个Tomcat并用Nginx实现负载分担
- 出口网关双链路接入不同运营商举例(负载分担)
- 生成树的冗余与负载分担技术
- Apache ActiveMQ 负载均衡
- ActiveMQ集群负载配置
- activemq的负载配置
- 负载均衡更高效 —— Windows Server 2003 实现服务器的流量分担
- 交换环境下的冗余及负载分担技术(STP & Channel & HSRP
- 负载均衡更高效 —— Windows Server 2003 实现服务器的流量分担
- Richface结束了
- vim的相关配置
- android开发游记:集成百度定位SDK进行实时定位 获取当前城市地理信息
- 拼接滚动地图-Quick-cocos2dx
- [从头学数学] 第102节 数学广角--鸽巢问题
- ActiveMQ桥接以及负载分担
- 杭电1102Constructing Roads(kruskal算法)
- C#Winform钻取子报表功能
- 在字符串中找到第一个只出现一次的字符
- 【Linux 优化篇】之 编译安装Nginx+php
- Android签名详解(转自ok_lanyan - 博客园)
- Minecraft Forge编程入门三 “初始化项目结构和逻辑”
- 用word发blog测试
- Sip 响应状态码 对照 详解