有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何抑制ActiveMQ中的排序?

我有一个消息队列,其中有一个生产者和一个消费者,用于异步请求,并通过应用一些超时策略来保证交付。这些信息的排序没有意义。每一条消息都是相互隔离的,都有自己的业务场景。所以我不需要在消息队列中进行任何排序。但问题是,队列被无法传递的第一条消息阻塞。其他消息是正确的,可以以正确的方式处理,但它们必须等待“坏”消息的传递

Java和JMS在队列客户端使用Spring

有没有可能让ActiveMQ队列不进行任何排序,而是对每条消息进行单独的重新传递超时


共 (2) 个答案

  1. # 1 楼答案

    解决这个问题的最佳方法是使用每种消息类型一个队列,或者在一组队列中对消息进行类似的逻辑分区

    JMS队列的功能与名称完全相同,先进先出。有一个选项可以使用消息优先级来允许消息跳转,但根据队列深度等,这有很多限制

    你最好将你的域分割成一组逻辑队列,并为每个队列消费

  2. # 2 楼答案

    你是在“先进先出”的情况下吗?,ie处理订单必须保留吗?如果没有,则在队列上启动多个使用者(例如多个MDB实例,在WebSphere中,您在激活规范上设置了每台服务器的“从属”数量),和/或为消息分配不同的JMSpriority,以首先处理“更紧急”的消息