使用JMS选择器与内存过滤

使用JMS选择器与内存过滤,jms,activemq,message-listener,Jms,Activemq,Message Listener,我需要从通过虚拟主题填写的队列中读取消息。考虑使用JMS选择器只读取侦听器中所需的消息-但由于我不希望消息在队列中-我可以实现另一个侦听器来读取剩余的消息并进行确认,或者我可以实现一个没有JMS选择器但在队列中进行过滤的侦听器记忆。 推荐哪种方法?我认为您应该使用选择器。在内存中进行过滤听起来像是重新发明轮子,可能没有那么安全。JMS选择器的另一个优点是它可以处理我们回滚的场景。只有通过JMS选择器选择的有效消息才会回滚。在内存过滤中,在回滚的情况下,我们必须做额外的工作。

我需要从通过虚拟主题填写的队列中读取消息。考虑使用JMS选择器只读取侦听器中所需的消息-但由于我不希望消息在队列中-我可以实现另一个侦听器来读取剩余的消息并进行确认,或者我可以实现一个没有JMS选择器但在队列中进行过滤的侦听器记忆。
推荐哪种方法?

我认为您应该使用选择器。在内存中进行过滤听起来像是重新发明轮子,可能没有那么安全。

JMS选择器的另一个优点是它可以处理我们回滚的场景。只有通过JMS选择器选择的有效消息才会回滚。在内存过滤中,在回滚的情况下,我们必须做额外的工作。