对于使用Spring Framework
且有/无ActiveMQ
的{{1}}应用
要求是在向WebSocket
发送任何消息之前,应该对Topic
进行检查,如果返回1,则可以安全地发送消息。如果返回0,则无法发送消息。
客户端可能来自websocket,并认为没有持久订阅。因此,如果发送了一条消息,并且没有客户端,则该消息将到达Number Of Consumers
并且几乎丢失(从未消耗)并且Topic
递增+1
我已经做了一项研究,并且我已阅读以下内容:
实际上所有内容都基于Messages Enqueued
。我已经读过了:
我理解,如果存在名为Advisory Message
的{{1}},则Topic
会创建abc.xyz
,直到此处我对这种模式感到满意。我可以通过ActiveMQ
让我感到困惑的是,几乎所有以前链接中提供的示例都围绕创建ActiveMQ.Advisory.Consumer.Topic.abc.xyz
并主要使用ActiveMQ Web Console
方法。对于后者,我知道听众的工作方式。
问题01 :那么谁应该称之为Session
?它触发onMessage
方法?这是我的困惑。
我需要的是使用ActiveMQ.Advisory.Consumer.Topic.abc.xyz
API(该应用已在使用onMessage
工作并运行,因此可以检索Spring Framework
,其他CachingConnectionFactory
约Connection
)和的基础架构可以访问该@Beans
目标并检索ActiveMQ
值。
注意:即使存在ActiveMQ.Advisory.Consumer.Topic.abc.xyz
与Number Of Consumers
一起声明,也可能为某些ActiveMQTopic
检索@Bean
,遗憾的是API确实存在Destination
不提供@Component
等方法。
问题02:如何实现这一目标?
我假设2.0.x的getConsumers()
API可能在某种程度上有所帮助。