Хорошо использовать очередь сообщений или брокер сообщений, такой как RabbitMQ, - это совершенно правильное решение.Но вы должны подумать, действительно ли это то, что вам нужно.
Посредник сообщений позволяет разделить производителей и потребителей сообщений.Это также позволяет ввести уровень отказоустойчивости.Если потребитель временно недоступен, сообщение не теряется.Однако это также означает, что, если ожидается ответ, производитель сообщения может ошибочно полагать, что другой конец обработал его запрос, и продолжает ждать ответа.Брокеры сообщений также часто предлагают какую-то гарантию, например, один раз и только один раз или, по крайней мере, один раз, а также политику, как обрабатывать недоставленные сообщения (например, очереди недоставленных писем), время жизни и различную маршрутизацию.возможности (например, последовательная маршрутизация на основе хеша).В вашем случае вам, вероятно, придется маршрутизировать по некоторому значению заголовка, содержащему ваш client.id
, если ваши серверные сообщения должны достигать только одного клиента.
Если вам не нужны какие-либо из этих функций ипросто хочу коммуникационную структуру, возможно, стремление к чему-то немного другому может иметь больше смысла.Например, Akka предлагает распределенную связь на основе акторов .
Если вас беспокоит только чистота раствора или количество шаблонов, возможно, вам стоит взглянуть на другие реализации.Возможно, вы захотите взглянуть на реализацию Reactive Streams API для RabbitMQ , которая должна быть немного более абстрактной.