`
liyixing1
  • 浏览: 939823 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

代理网络中消息传递

    博客分类:
  • jms
阅读更多
常见的方式是让所有客户端都连接到一个中心代理,而这不是使用消息系统最理想。

ActiveMQ代理网络使用存储和转发的概念,即,在客户端运行的时候,启动一个本地代理,消息通常被存储在本地代理中,然后才通过网络
转发到其他代理.这就是说,如果因为网络连接问题导致消息不能被及时投送,那么当网络连接
恢复并重建后,代理可以重新发送任何未及时投送的消息到远程代理上.

这种方式就像是在客户端处建立起一个本地的临时中心,消息发送给临时中心,之后就不在管,而临时中心和真正的中心之类的消息通信则由临时中心自己完成。可以简单的把这个临时看成是缓存一样的东西。




ActiveMQ代理配置中网络连接器和消息持久化配置的顺序很重要.网络连接,消息持久化和连接器
需要按照下面的顺序配置:
1 网络连接 -- 网络练剑需要在消息存储之前建立好
2 消息存储 -- 需要在传输连接之前配置
3 传输连接 -- 应当是代理配置后最后配置的

示例
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://activemq.apache.org/schema/core">
<broker brokerName="receiver" persistent="true" useJmx="true">
 
<networkConnectors>
<networkConnector uri="static:(tcp://backoffice:61617)"/>
</networkConnectors>
 
<persistenceAdapter>
<kahaDB directory = "activemq-data"/>
</persistenceAdapter>
 
<transportConnectors>
<transportConnector uri="tcp://localhost:62002"/>
</transportConnectors>
 
</broker>
</beans>


高可用的企业网络,就如图这样




网络侦测

当尝试与远程代理之间的网络连接时,该链接使用一个侦测工具来定位远程代理以便建立(重建)连接.
ActiveMQ提供两种类型的网络侦测:
1 动态网络 -- 使用多点传送与会合协议
2 静态网络 -- 使用一系列的静态的代理URL来建立连接

动态方式
<networkConnectors>
<networkConnector uri="multicast://default"/>
</networkConnectors>

代理会广播自己信息,另外一个代理收到这个广播信息,发现组名和自己一样就会建立连接。

静态侦测方式建立网络连接的.尽管这种配置方式要求更多一点的配置
并且这种静态方式可能不适合大型网络,但是通常大部分部署环境中都使用了这种配置.静态侦测需要一个代理URL列表,然后根据列表中的顺序尝试连接每一远程代理.

例如,可以使用下面的代码示例,配置本地主代理连接到远程主机,并且在远程主机代理失效时
连接到远程备机代理

<networkConnectors>
<networkConnector uri="static:(tcp://remote-master:61617,tcp://remote-slave:61617)"/>
</networkConnectors>

http://jackyin5918.iteye.com/blog/1983768
  • 大小: 22.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics