Реализация AMQP C ++ - PullRequest
       8

Реализация AMQP C ++

9 голосов
/ 14 февраля 2010

Мы пишем код C ++, который нуждается в обмене сообщениями.Существует ли бесплатный / открытый исходный код и стабильный сервер AMQP, который имеет одинаково стабильную клиентскую библиотеку C ++.Мы также должны предоставить Python-интерфейс нашего кода пользователям (идея состоит в том, чтобы сделать максимум вещей на C ++ и представить API на Python).

Что может быть лучшим способом для достижения этого.

Ответы [ 5 ]

8 голосов
/ 16 февраля 2010

Для дальнейшего ознакомления посмотрите на Apache Qpid - он имеет клиентскую библиотеку C ++ и очень хорош. Проблема для вашего варианта использования состоит в том, что Rabbit реализует AMQP 0-8, а клиент Qpid C ++ передает AMQP 0-10.

2 голосов
/ 14 февраля 2010

Apache QPid , похоже, здесь уместно. Здесь есть брокерская / клиентская библиотека C ++ здесь .

Обратите внимание: поскольку вы программируете по протоколу (AMQP), ваш брокер / клиент не обязательно должен быть на одном языке . например Я использую клиенты Scala и C #, разговаривающие с RabbitMQ (брокер Erlang).

1 голос
/ 15 ноября 2015
1 голос
/ 14 февраля 2010

AMQP может быть довольно сложным для понимания - я предлагаю использовать Буферы протокола для кодирования уровня коммуникации, он генерирует как Python, так и C ++. если ваши потребности слишком сложны, я бы предложил ICE , поскольку он поддерживает все языки программирования, о которых вы только можете подумать, и я считаю, что он также обрабатывает формат буферов протокола.

- редактировать -

Если вы собираетесь использовать AMQP, вы должны посмотреть на Zero MQ . Имеет реализацию AMQP на C ++. Однако они переносят его на реализацию на чистом C.

0 голосов
/ 05 сентября 2012

Я знаю, что это немного поздно, я нахожусь в той же позиции, что и Аскер.

Я смотрю на IceStorm и Apache QPid за ответы выше.

В настоящее время у меня есть Rabbit MQ, но его сложно интегрировать с C ++.

Я думаю, если у вас есть контроль над клиентским и серверным кодом, и вам не нужен AMQP "стандарт", и IceStorm делает то, что вам нужно, и вы круто владеете лицензией GPL (или готовы купить лицензию у zeroC) .. IceStorm, похоже, является наиболее стабильным и кросс-языковым решением.

...