Дизайн системы обмена сообщениями - PullRequest
2 голосов
/ 29 июня 2011

Я ищу способ отправки запросов и получения обратных вызовов от другой стороны.

Единственный недостаток в том, что мы не знаем, как он будет спроектирован / развернут на стороне получателя.

У нас есть текстовые / JSON-сообщения, определенные и согласованные.

Посмотрел RabbitMQ и других, но для каждого требуется сервер, который нужно обслуживать.

Спасибо

Ответы [ 2 ]

1 голос
/ 20 августа 2011

RabbitMQ довольно прост в обслуживании. Вы бы использовали две очереди, одну для запросов, а другую для ответов. Используйте заголовок AMQP correlation_id для пометки запросов и ответов, чтобы при получении ответного сообщения его можно было сопоставить с первоначальным запросом.

Однако, если брокер не для вас, используйте ZeroMQ. Это клиентская библиотека, доступная для дюжины или более языков, и она применяет шаблоны обмена сообщениями поверх сокетов. Это означает, что вашему приложению не нужно выполнять все управление сокетами низкого уровня. Вместо этого вы объявляете сокет как REQ / REP, а ZeroMQ обрабатывает все остальное. Вы просто отправляете сообщения в любом формате и получаете сообщения обратно.

Я использовал ZeroMQ для реализации приложения в стиле memcache в Python с использованием REQ / REP.

1 голос
/ 30 июня 2011

@ user821692: Вы должны согласовать не только формат сообщения, но и протокол назначения / транспортный протокол. Например, если обе взаимодействующие стороны имеют доступ к одной и той же очереди, физически расположенной в любом месте, они могут передавать заранее определенные сообщения Вы также можете посмотреть на отправку сообщений по HTTP.

...