В настоящее время у меня есть система, в которой приложения пингуют друг друга, чтобы проверить, что они все еще живы. У меня есть 1 клиент, который отправляет запросы, 1 маршрутизатор, который их распределяет, и 2 работника, которые выполняют работу и возвращают результаты.Есть ли способ вернуть любые неотправленные сообщения в zeromq?
Если рабочий умирает, маршрутизатор работает и передает его другому. Это дает мне время, чтобы понять, что случилось не так, и действовать соответствующим образом. Если маршрутизатор умирает, клиент знает об этом. Однако я хотел бы узнать, работает ли мой клиент, что маршрутизатор умер (что он может сделать), а затем все сообщения помещаются в очередь и просто отправляют их обратно.
Это чат-приложение, поэтому кто-то отправит сообщение, это пойдет в порт дилера клиента. Дилер вдруг пойдёт «waaah router's dead!» и отправьте сообщение вместе с ошибкой, чтобы сказать, что система в данный момент недоступна. Таким образом, если катастрофические удары, пользователи узнают, что система выключена и перестает отправлять сообщения, пока они не вернутся.
Есть ли способ сделать это? Правильно ли я говорю, что знак высокой воды знает внутри, сколько сообщений в настоящее время не отправлено, и, может быть, я мог бы использовать какую-то функцию, чтобы вернуть все очереди в нуль mq?
Большое спасибо