我正在使用Spring的ActiveMQ JMS实现,并且刚刚从队列模型切换到主题模型,因为我的JMS客户端从一个增加到多个。主题订阅者应该是持久的,因为在某些情况下客户可能会变得不可用。
我不明白何时从主题中删除持久性消息。底层引擎不知道有多少订阅者可以从该主题接收,所以什么时候从其内部数据库中删除该消息?它是以基于时间的方式完成的吗?
答案 0 :(得分:4)
如果您为某个主题注册一个新的持久订阅者,则代理服务器将跟踪该订阅并保留消息,直到每个订阅者(具有唯一订阅者ID)成功使用该消息。
非常类似于将消息复制到每个接收器的唯一队列。
底层引擎不知道有多少订阅者可以从该主题收到
- 是的,它知道,因为订阅是持久的