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

时间:2017-08-19 13:29:35

标签: java spring-boot rabbitmq akka spring-rabbitmq

我是RabbitMQ的新手,我想从RabbitMQ中消费多条消息,这样就可以平行完成工作,只有当任何一个演员完成它的任务时才发送确认,以免丢失消息。我该怎么办,我想用AKKA弹簧支撑。

我可以将一个actor用作消费者,或者它应该是一个普通的消费者,可以使用多个消息而不发送任何消息的确认,或者应该是我有多个类/线程作为消费者实例化来监听单个消息消息一次比调用actor(但这就好像它没有演员或并行通过AKKA模型)。

1 个答案:

答案 0 :(得分:0)

我本身并没有和RabbitMQ合作过,但我可能会指定一名演员作为调度员,那会:

  1. 处理RabbitMQ连接。
  2. 接收消息(无论是逐个还是批量生效都无关紧要。)
  3. 通过为每封邮件创建新工作人员,或者通过向预先创建的工作人员池发送邮件,在工作人员之间分配工作。
  4. 完成任务并提交结果后,接收来自工作人员的确认,并将确认发送回RabbitMQ。确认令牌可以作为工作人员任务的一部分包含在内,因此无需跟踪调度员内部的映射。
  5. 需要考虑的其他一些事项是:

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