Хорошие примеры приложений, использующих очереди сообщений - PullRequest
2 голосов
/ 11 февраля 2011

Я хотел бы узнать больше о программировании приложений обмена сообщениями и использовании очередей сообщений.Такие вещи, как qpid, Amazon Queues и т. Д. Можете ли вы указать мне некоторые приложения (желательно C ++, с открытым исходным кодом, если это возможно), чтобы я мог узнать больше.

Также, вы можете сказать мне общие рекомендации, которые можно использовать длярешить, не использовать ли очереди сообщений.Я заинтересован в том, чтобы подумать об этом только из-за «крутости», но думаю, что это может быть полезно для меня в будущем.

Ответы [ 3 ]

5 голосов
/ 12 февраля 2011

RabbitMQ - это очередь сообщений, с которой я наиболее знаком. Он реализует AMQP так же, как qpid. AMQP является широко распространенным проводным протоколом, и существует множество доступных клиентских библиотек, таких как C ++, Java, Ruby, .Net, Python и т. Д.

Если распределенная служба нестабильна и не всегда подключена к сети, вы можете использовать надежную очередь сообщений для сохранения сообщений. Затем сообщения доставляются, когда распределенный сервис возвращается к жизни.

Если распределенная служба имеет низкую задержку и клиентская служба генерирует больше запросов, чем распределенная служба может обработать, очередь будет удерживать сообщения до тех пор, пока распределенная служба не сможет их обработать, в то же время позволяя клиенту обрабатывать данные без ограничений.

Если запросы должны быть распределены по нескольким службам, обмен позаботится о важных деталях, таких как доставка сообщения каждой распределенной службе один раз и только один раз.

Я не рекомендую использовать очереди сообщений, когда вам нужен синхронный вызов удаленной службы. Очереди сообщений изначально асинхронны.

0 голосов
/ 12 февраля 2011

Не уверен, что написано, но в Eclipse IDE, похоже, есть какая-то система сообщений.Всякий раз, когда он занят (читай, отстает ... много), вы видите сообщение «выполнение пусто перед пользовательской операцией».Затмение с открытым исходным кодом.Я не уверен, где можно скачать исходный код .. но я считаю, что он поставляется с установкой - http://www.eclipse.org/downloads/. последняя версия 3,6 (гелиос)

0 голосов
/ 12 февраля 2011

Не язык программирования, но полезный инструмент для программирования с очередями сообщений: Promela / Spin . Он предназначен для выявления взаимоблокировок или других проблем параллелизма, которые могут возникнуть в распределенной системе. Безусловно, рассмотрение проблем, которые могут помочь выявить, даст вам представление о проблемах, с которыми вы можете столкнуться.

...