gpt4 book ai didi

java - JMS客户端如何通知新消息

转载 作者:行者123 更新时间:2023-11-30 04:22:55 26 4
gpt4 key购买 nike

我正在学习 JMS,想知道 JMS 客户端(例如 MessageListener)如何注意到它注册的队列中的新消息。是否频繁通过TCP向broker发送请求,查看是否有新消息?如果是,这个请求是同步的还是异步的?

最佳答案

JMS 只是一个 API。它不指定任何线路级协议(protocol)。所以你无法真正判断客户将如何对待经纪人。据我们所知,它可以使用归巢鸽。好吧,也许不是,但是像 WebSphere MQ 和 ActiveMQ 这样的代理都提供内存传输以及基于 TCP 的服务。

大多数供应商都有自己的专有协议(protocol),尽管 AMQP作为有线协议(protocol)标准即将出现(但远非所有供应商都开始关注它)。

当谈论 TCP 时,只要存在实时连接就不需要轮询。代理可以轻松地通知客户端在客户端 sleep 时发布了新消息,反之亦然。

然而,一种常见的方法是实际进行民意调查。而是以较长的时间间隔(秒)轮询 consumer.receive(TIMEOUT);。这使得在像spring这样的框架中使用分布式事务成为可能。代理仍然根据需要向客户端发送实际的 TCP 消息。

如果不是这样,那么 JMS/Messaging 就不会是如此快速、广泛的 pread 和可扩展的技术

关于java - JMS客户端如何通知新消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16577910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com