当前位置:编程学习 > 网站相关 >>

MQ集群消息分发的问题

问题背景:
    QmA、QmB为两个互相通信队列管理器,其中RemoteMsg、RemoteData为QmA中的远程队列;Msg、Data为QmB的本地队列。其中QmB在集群CLUSTER中,应用程序将附件放入RemoteData中,将消息放入RemoteMsg中,此消息与附件相对应。QmB收到消息后将消息和附件分发到不同队列管理(Qm1、Qm2、Qm3)中。接收到应用程序分别监听到不同的队列管理器的Msg队列,一旦收到消息,便去分别去Data中寻找对应的附件。此发送接收流程结束!
问题:
    发送方先写入附件后写入报文,此操作是同一个事务。当高并发发送报文、附件时,发现接收方Data中会有附件信息没有被获取,而对应的消息却被取走了。经分析发现接收方接收日志中获取消息的时间比Data中该未被获取的附件放入时间要早,例如从Msg获取消息是10:02,而浏览Data中该消息MessageId对应的附件放入时间为10:04。从而推断,消息与附件的分发存在时延,即获取消息后,根据消息中messageid获取对应的附件时,此附件还未被分发到指定的队列管理器中。所以在下的问题是,如何控制分发的速度,或者像这种处理方式是否存在不妥,是否有更好的保证机制?
    请指教!
--------------------编程问答-------------------- 众神顶起! --------------------编程问答-------------------- 坐等高人。。。。 --------------------编程问答-------------------- 上联:夜袭珍珠港,美人受精
下联:两颗原子弹,日德投降
横批:二次大战 --------------------编程问答-------------------- 根据ID接收消息的时候不是可以设置timeout时间吗?timeout时间掌握好,就可以取到了啊。。如果是没有设置timeout时间那么就是取一下发现没有就返回null了。。如果设置了就会在timeout时间过后才会返回,你这种情况弄个timeout时间就好了啊。
补充:企业软件 ,  WebSphere
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,