目前,我正在使用一个设置,其中ActiveMQ用于以持久的方式控制许多消费者和许多生产者之间的消息处理。
我正在试图找出一种可以分叉队列的方法,这样我就可以拥有一个生产队列和一个用于分析/诊断目的的副本。我发现制作复合队列似乎是为了满足这种需求。生产数据可以继续正常流动,而我关心的消息是重复的,供我使用。
我对这种方法的问题在于可靠性。我不希望分析/诊断过程阻止生产数据流,我也不希望ActiveMQ耗尽内存,备份消息或分析/诊断服务脱机。对我来说,最好的选择是,如果消息已满,消息将从分析/诊断队列中删除。
constantPendingMessageLimitStrategy可以完美地用于我的目的,但是从我从一些邮件列表中读到的内容(在尝试使其工作失败之后)是它仅支持主题。消息TTL对我来说也不起作用(据我所知),因为该设置附加到生产者我只希望到期/丢弃/驱逐只发生在非生产队列上。
我正在尝试做什么选择?
答案 0 :(得分:0)
您可以利用较新的ActiveMQ Broker Camel component拦截发送到您的分析/诊断队列的消息并添加您的TTL值,或者您甚至可以拦截并仅在某些外部来源告诉您的时候调度到该队列#39; s启用等等。有很多方法可以完成你正在做的事情,但由于它有点超出正常经纪人操作的范围,你需要稍微努力才能得到你想要的东西。