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

Java ActiveMQ持久主题、消息预订阅?,java,activemq,jms-topic,Java,Activemq,Jms Topic,在我们的业务需求中,我们需要将更新传输到遍布全国的数千个客户机。事实是,许多客户使用3g网络连接到我们,因此,许多连接/断开发生。。。我们需要提供的更新是“企业A不能再兑换现金”或“企业B可以再次兑换现金”, 我们正在考虑使用ActiveMQ持久主题来交付这些更新。我的理解是,一旦客户连接到一个持久的主题,即使他失去了连接,只要他回来,他就会在离线时收到发送到该主题的消息。 最大的问题是,如果一个客户启动了我们的系统,但在订阅之前,消息被发送到了他正在订阅的持久主题,该怎么办。本案为: 创建持久

在我们的业务需求中,我们需要将更新传输到遍布全国的数千个客户机。事实是,许多客户使用3g网络连接到我们,因此,许多连接/断开发生。。。我们需要提供的更新是“企业A不能再兑换现金”或“企业B可以再次兑换现金”, 我们正在考虑使用ActiveMQ持久主题来交付这些更新。我的理解是,一旦客户连接到一个持久的主题,即使他失去了连接,只要他回来,他就会在离线时收到发送到该主题的消息。 最大的问题是,如果一个客户启动了我们的系统,但在订阅之前,消息被发送到了他正在订阅的持久主题,该怎么办。本案为:

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

根据ActiveMQ文件,客户端A将毫无问题地接收消息3到6。但是消息1和消息2呢?我们不能放过那些信息

提前谢谢

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

如果您打算将消息的整个历史记录提交给新客户机,我建议使用一些“初始加载”过程,客户机在其中请求历史记录。可能使用JMS请求-应答或其他一些功能

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

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

您可以根据时间、计数、内存大小或类似情况进行恢复。请参见选项和设置

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

谢谢您的回答。我们有一个“初始加载”,更新不会持续很长时间,最多一周。