锁定老帖子 主题:关于ActiveMQ队列之间协作的讨论
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-08-02
最后修改:2010-08-02
我是这样想的,大家看看有没有什么问题: 首先得需要两个队列A和B。接收者监听B,发送者监听A。 发送者将消息X发送到队列A中,接收者通过消息驱动的方式接收到X,并将响应消息Y发送到队列B中,接收者再接收消息Y,进行处理。 以上方式的问题在于,因为是异步的,发送者接收到的消息Y不一定是自己上次请求的回应。我的方法是通过将Y消息缓存起来的方式予以解决。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-08-02
你所叙述的场景不适合使用AMQ
|
|
返回顶楼 | |
发表时间:2010-08-02
JMS不是有reply功能吗?可以创建temp queue做reply,无需这样吧。
|
|
返回顶楼 | |
发表时间:2010-08-02
dennis_zane 写道 JMS不是有reply功能吗?可以创建temp queue做reply,无需这样吧。
那个也是异步的, 他的场景是要求同步回复。 |
|
返回顶楼 | |
发表时间:2010-08-02
dennis_zane 写道 JMS不是有reply功能吗?可以创建temp queue做reply,无需这样吧。
那我得好好看看这个replay能不能满足我的需求。 |
|
返回顶楼 | |
发表时间:2010-08-02
mikewang 写道 你所叙述的场景不适合使用AMQ
我知道AMQ不合适,用webservice最好,我现在就这考虑这个可能性,非用AMQ不可。 |
|
返回顶楼 | |
发表时间:2010-08-02
最后修改:2010-08-02
mikewang 写道 dennis_zane 写道 JMS不是有reply功能吗?可以创建temp queue做reply,无需这样吧。
那个也是异步的, 他的场景是要求同步回复。 JMS有提供QueueRequestor或者TopicRequestor这样的工具类将异步转同步,请求/响应模型JMS有定义的。楼主完全没必要自己做,JMS本身就提供了这个功能。 |
|
返回顶楼 | |
发表时间:2010-08-02
dennis_zane 写道 mikewang 写道 dennis_zane 写道 JMS不是有reply功能吗?可以创建temp queue做reply,无需这样吧。
那个也是异步的, 他的场景是要求同步回复。 JMS有提供QueueRequestor这样的工具类将异步转同步,请求/响应模型JMS有定义的。 哦, 这个我还真不知道, 我去看看。 谢谢提醒 |
|
返回顶楼 | |
发表时间:2010-08-02
dennis_zane 写道 mikewang 写道 dennis_zane 写道 JMS不是有reply功能吗?可以创建temp queue做reply,无需这样吧。
那个也是异步的, 他的场景是要求同步回复。 JMS有提供QueueRequestor或者TopicRequestor这样的工具类将异步转同步,请求/响应模型JMS有定义的。楼主完全没必要自己做,JMS本身就提供了这个功能。 以下来自百度: JMS提供了QueueRequestor,这是一个能发送请求和接收应答的简单类。请求者包含一个QueueSender来发送请求,并且利用一个QueueReceiver接收应答。每个请求者会创建自己的临时队列以接收应答,并把该队列的地址设置在请求消息的reply-to属性中。请示者发送和接收应答的代码非常简单: QueueConnection connection=//获得连接 Queue requestQueue=//获得队列 Message request=//创建请求消息 QueueSession session=connection.CreateQueueSession(false,Session.AUTO_ACKNOWLEDGE); QueueRequestor requestor=new QueueRequestor(session,requestQueue); Message reply=requestor.request(request); request方法负责发送请求消息,这个方法会阻塞,直到接收应答消息为止。 QueueRequestor使用的TemporaryQueue是一个点对点通道。相应的发布-订购通道是TemporaryTopic和TopicRequestor 看来是我孤陋寡闻了。。 |
|
返回顶楼 | |
发表时间:2010-08-02
dennis_zane 写道 mikewang 写道 dennis_zane 写道 JMS不是有reply功能吗?可以创建temp queue做reply,无需这样吧。
那个也是异步的, 他的场景是要求同步回复。 JMS有提供QueueRequestor或者TopicRequestor这样的工具类将异步转同步,请求/响应模型JMS有定义的。楼主完全没必要自己做,JMS本身就提供了这个功能。 请问有没有什么具体的例子,这个请求/响应模型不会只是告诉发送者接收者已经收到消息了吧。 |
|
返回顶楼 | |