当前位置: 首页 > 知识库问答 >
问题:

RabbitMQ:下一条消息只能在上一条消息被加密后出列

东方震博
2023-03-14

我希望对RabbitMQ中的队列有这样的约束:

编辑(澄清):将有许多消费者都试图从所有队列中获取工作,由于他们无法从一个队列中获取工作,该队列中处理的事件未被加密,所以有序处理将被维护。

共有1个答案

祁和通
2023-03-14

队列中的下一条消息在上一条消息(正在处理的消息)被加密之前不能出列。

您可以通过单个使用者的使用者预取限制来实现这一点。

通过这一点,我将实现事件的有序处理和跨多个队列的并行处理。

如果您有2个消费者,那么每个消费者将并行处理一条消息。如果您有10个消费者,那么将并行处理10条消息。

按顺序处理每条消息的唯一方法是拥有一个预取值为1的单个使用者。

 类似资料:
  • 问题内容: 通过Rabbitmq中的示例,消费者可以一次从队列中获取所有消息。如何使用一条消息并退出? 问题答案: 您必须声明basicQos设置,才能一次从ACK到NACK状态获取一条消息,并禁用自动ACK以便显式给出确认。 希望能帮助到你!

  • 问题内容: 我知道我有一个空指针,但不知道它在哪里发生或为什么发生。希望在这里得到一些帮助。 文件courseDBopenHelper courseDataSource.java course.java 错误日志 问题答案: 你的错误很明显 您必须为日志消息提供一条消息。不能为空。 应该

  • 20.3. 发送一条消息 JmsTemplate包含许多方便的方法来发送消息。有些发送方法可以使用 javax.jms.Destination对象指定目的地,也可以使用字符串在JNDI中查找目的地。没有目的地参数的发送方法使用默认的目的地。这里有个例子使用1.0.2版的JMS实现发送消息到一个队列。 import javax.jms.ConnectionFactory; import javax.

  • 我如何获得第二条信息?

  • 我想创建一个主题,其中包含唯一键及其对应的最新值。因此,当将具有现有密钥的消息插入主题时,旧消息将被删除。 为此,我在服务器中配置了以下参数。属性文件: 所以压缩应该每3分钟进行一次。为了测试压缩策略,我创建了一个主题 使用控制台使用者,我产生了以下消息: 其中,控制台消费者——引导服务器本地主机:9092——主题保留测试——从一开始就成功地消费了它们; 现在,当我尝试插入带有已添加键的消息时,旧