使用 AKKA actor 在 java 中使用来自 RabbitMQ 的多条消息



我是 RabbitMQ 的新手,我想使用来自 RabbitMQ 的多条消息,以便可以并行完成工作,并且仅在任何参与者完成任务时才发送确认,以免丢失消息。我应该如何进行,我想对 AKKA 使用弹簧支持。

我是否可以使用参与者作为使用者,或者它应该是一个普通使用者,可以在不发送任何消息确认的情况下使用多条消息,或者应该是我有多个类/线程作为使用者实例化,一次侦听一条消息而不是调用参与者(但这就像它没有参与者或通过 AKKA 模型的并行性(。

我本身没有使用 RabbitMQ,但我可能会指定一个 actor 作为调度员,这将:

  1. 处理 RabbitMQ 连接。
  2. 接收
  3. 消息(无论是逐个还是批量接收以提高效率无关紧要(。
  4. 通过为每个消息创建一个新工作线程,或通过将消息发送到预先创建的工作线程池,在工作线程参与者之间分配工作。
  5. 在任务完成并提交结果后接收来自 worker 的确认,并将确认发送回 RabbitMQ。确认令牌可以作为工作线程任务的一部分包含在内,因此无需跟踪调度程序内部的映射。

需要考虑的其他一些事项是:

监督
  • 策略:谁监督调度员?谁来监督工人?如果它们崩溃会怎样?
  • 在分布式环境中运行时重新发送消息。

最新更新