jms高可用性消息传递顺序
我已经建立了带有weblogic服务器12c的统一分布式队列。我正在尝试使用jms分布式队列来实现交付和高可用性。在我的prototpe测试部署中,我在集群中有两台托管服务器,让我们说managed_server1和managed_server2。这个托管服务器中的每个托管jms服务器,即jms server1和jms server2。我已经使用jdbc持久性存储配置了jms服务器。我已启用服务器关联。jms高可用性消息传递顺序
- 我有一个生产者运行如java queuproducer t3 ::/managed_server1。我发出4条消息。从weblogic监控控制台,我看到queu中有4条消息,因为没有使用者到队列中。
- 现在我关闭managed_server1。
- 调出一个消费者来监听java queuconsumer t3:// managed_server2。此消费者不能消费消息,因为生产者将所有消息发送到jms server1,并且它已关闭。
- 启动托管服务器1,启动消费者以听取t3:// managed_server1我可以获取所有消息。
这是我的问题,如果managed_server1发生故障,那么它从来没有恢复过来,我是否会丢失我的所有消息。此外,如果有另一位制片人将消息发送到Java queuproducer T3:// managed_server2然后根据这些生产者之间的时间信息的顺序不guanranteed。
我有点迷路,我是否错过了一些东西。单位能否帮助我克服这一点。或者我应该使用分布式主题,而不是分布式队列,所有的JMS服务器将接收所有来自生产商的消息,但如果在我的consumre监听一个JMS服务器故障有我的应用程序只有一个消费者,当我切换到其他jms服务器,我可能会开始从一开始就从我离开的地方得到消息。
任何关于相同的建议将有所帮助。
回答:
好问题!
“这是我的问题说,如果managed_server1下去那么它永远不会回来了,做我失去我的所有消息。”
答案 - 不,你不松动的所有邮件,它们存储在配置部署管理服务器1.如果你想发送给managed_server1消息的JMS服务器的JDBC存储从managed_server2需要配置JMS迁移消耗。 “
”另外,如果有另一个生产者发送消息给java queuproducer t3:// managed_server2,那么基于这些生产者之间的时间消息的顺序是不能保证的,命令单元可以帮助我克服这个问题。
答案 - 如果你想将邮件按照一定的顺序严格被消耗掉,那么你将不得不使用单位的顺序(UOO)。当消息使用UOO发送,它们被送到几个UDQ的旅游目的地之一,如果中途该目标失败,迁移启用被迁移到下一个目的地UDQ和新UDQ消息消息也传递到新的目的地。
相关链接 -
http://www.youtube.com/watch?v=B9J7q5NbXag http://www.youtube.com/watch?v=_W3EJ8p35lI
希望这有助于。
以上是 jms高可用性消息传递顺序 的全部内容, 来源链接: utcz.com/qa/264845.html