gpt4 book ai didi

java - ActiveMQ 持久主题、消息预订阅?

转载 作者:行者123 更新时间:2023-11-30 08:16:39 25 4
gpt4 key购买 nike

根据我们的业务需求,我们需要将更新传输给分布在全国各地的数千个客户。事实是,许多这些客户端使用 3g 网络连接到我们,因此,会发生许多连接/断开连接......我们需要提供的更新是诸如“企业 A 无法再兑现”或“企业 B 能够再次兑现", 我们正在考虑使用 ActiveMQ 持久主题来提供这些更新。据我了解,一旦客户端连接到持久主题,即使他失去了连接,每当他回来时,他都会收到离线时发送到该主题的消息。 一个大问题是,如果客户端启动我们的系统,但在订阅之前消息已发送到他正在订阅的持久主题,该怎么办?本案例为:

持久主题已创建
消息 1 发送到持久主题
消息 2 发送到持久主题
客户端A订阅持久主题
消息3发送到持久主题
消息 4 发送到持久主题
客户端A下线
消息 5 发送到持久主题
消息 6 发送到持久主题
客户端A上线

根据 ActiveMQ 论文,客户端 A 将毫无问题地接收消息 3 到 6。但是消息 1 和消息 2 又如何呢?我们不能失去这些信息......

提前致谢!

最佳答案

“消息 1-2”应该可用多长时间。考虑在消息传递多年后添加客户端订阅者。所有这些都应该交付吗?

如果您打算将消息的完整历史记录提交给新客户端,我建议使用一些“初始加载”过程,客户端会在其中询问历史记录。也许使用 JMS 请求回复或其他一些功能。

无论如何,如果您希望您的客户端能够在创建之前获取一些消息,您可以使用retroactive consumer .

然后您需要在代理端指定恢复策略。

您可以根据时间、计数、内存大小或类似内容进行恢复。查看选项和设置 here .

使用目标名称,例如:UPDATE.TOPIC?consumer.retroactive=true 在客户端启用此功能。

关于java - ActiveMQ 持久主题、消息预订阅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29565899/

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