我如何确定具有Rabbitmq使用者的服务器已关闭?

问题描述

我有一个生产者服务器和一个消费者服务器。生产者服务器将时间发送到Rabbitmq队列。使用者获取时间并将其放入scheduledexecutorservice池中。使用者在指定的时间完成任务。恐怕我的消费者会跌倒,并且我会丢失数据。因此,我需要实时了解我的客户服务器何时崩溃。但是我没有找到实现它的方法。请告诉我该怎么做?

解决方法

您可以使用许多可用服务之一来监视服务器并报告服务器是否无响应。例如,您可以使用https://uptimerobot.com/并在服务上公开一个简单的HTTP端点,然后在该端点不可用时进行报告。还有许多其他全面的监视服务,例如:datadog,monitis,new relic等。或者,您可以通过拥有另一台服务器来构建自己的服务器,该服务器定期检查HTTP端点或您的使用者服务器上是否可用并通知您是否存在

话虽如此,我建议更改您的使用者,以避免由于崩溃而造成数据丢失,因为您正在为使用者创建计划任务,因此建议您查看一下Quartz Scheduler并使用它来调度和处理您的使用者而不是使用定制的解决方案。如果您使用诸如JDBCJobStore之类的持久性存储,Quartz将确保您的作业即使在失败后也能运行。 http://www.quartz-scheduler.org/overview/