【发布时间】:2015-06-16 10:28:13
【问题描述】:
在我们的业务需求中,我们需要将更新传输给分布在全国各地的数千个客户。问题是,这些客户端中的许多使用 3g 网络连接到我们,因此,发生了许多连接/断开连接......我们需要提供的更新是“企业 A 不能再兑现”或“企业 B 能够再次兑现”, 我们正在考虑使用 ActiveMQ 持久主题来提供这些更新。据我了解,一旦客户端连接到一个持久主题,即使他失去连接,每当他回来时,他都会在离线时收到发送到该主题的消息。 最大的问题是,如果客户启动我们的系统,但消息被发送到他订阅的持久主题,在他的订阅之前。这个案例是:
创建持久主题
消息 1 发送到持久主题
消息 2 发送到持久主题
客户 A 订阅了持久主题
消息 3 被发送到持久主题
消息 4 被发送到持久主题
客户端 A 下线
消息 5 被发送到持久主题
消息 6 被发送到持久主题
客户端A上线
根据 ActiveMQ 论文,客户端 A 将毫无问题地接收消息 3 到 6。但是消息 1 和 2 呢?我们不能丢失这些信息...
提前致谢!
【问题讨论】: