【发布时间】:2020-10-20 17:27:42
【问题描述】:
我有一个生产者服务器和一个消费者服务器。生产者服务器将时间发送到 rabbitmq 队列。消费者获取时间并将其放入 ScheduledExecutorService 池中。在指定时间,消费者完成任务。我担心我的消费者会掉下来,我会丢失数据。所以我需要实时知道我的消费者服务器何时崩溃。但我没有找到如何实现它。请告诉我该怎么做?
【问题讨论】:
-
如果你的消费者在处理rabbitmq消息之前失败了,那么rabbitmq将不会从你的服务器得到确认并再次发送消息。因此,如果您的消费者失败,您不应该丢失数据。如果消息失败,您可以重试,并在多次重试后将消息发送到单独的死信队列。
-
但是我怎么知道消费者在任务中摔倒了呢?它将任务存储在 ScheduledExecutorService 池中。
-
在我看来,您正试图将两个不同的排队系统联系在一起以构建第三个系统,并且最好为这项工作找到一个更好的工具 - 即可以集中管理列表的工具计划任务,并跟踪其状态。
标签: java spring-boot rabbitmq amqp