У меня есть 2 сервера server1 и server2. сервер1 является главным сервером, а сервер2 является подчиненным. Оба работают в кластерной среде.
Если 2 сообщения с одинаковым идентификатором группы поступают одновременно на узел 1 и узел 2, они не будут знать, какому получателю должно быть отправлено сообщение. Поэтому сообщение в конечном итоге обрабатывается разными потребителями, и иногда сообщение, которое поступило первым, обрабатывается позднее, что нежелательно.
Я хотел бы настроить систему так, чтобы оба узла знали друг друга, что сообщение должнобыть обработанным каким потребителем.
Решение, которое я пробовал: Настроил server1 с групповым обработчиком LOCAL и server2 с REMOTE. Теперь, всякий раз, когда приходит сообщение, обработчик LOCAL группы идентифицирует, что потребитель находится на каком узле, и сообщение выбирается соответствующим образом.
Это решение действует до тех пор, пока server1 не будет работать нормально. Однако, если server1 выходит из строя, сообщения больше не будут обрабатываться.
Чтобы это исправить, я добавил сервер резервного копирования в подсистему обмена сообщениями active mq server1 на server2 и аналогичным образом сделал то же самое для server2.
/ profile = garima / subsystem = messaging-activemq / server = backup: add
И добавил к этому же кластерное соединение, группу обнаружения, http-соединитель, широковещательную группусервер резервного копирования, но когда я попробовал это решение, похоже, не было исправлено условие аварийного переключения, и сообщения не обрабатывались на другом узле.
Пожалуйста, предложите любой другой подход или как я могу настроить сценарий, где сервер с обработчиком LOCAL группыостанавливается.