Какое хорошее решение для общения через брокер сообщений, который поддерживает как приложения Cython, так и Java/JMS? Мои особые требования:
- с открытым исходным кодом
- Доступно для Linux-систем.
- Не требуется рандеву между отправителем и получателем (т.е. использует брокер сообщений).
- Несколько производителей и потребителей поддерживаются в одной очереди событий (только один потребитель получает каждое сообщение)
- Единица поддержки работы с двухфазным фиксацией (поддержка XA приятно иметь)
- Поддержка постоянных сообщений (т.е. выжить при перезапуске брокера)
- Поддержка JMS для клиентов Java
- Ни один компонент не является "бахромой", что означает риск выхода из обслуживания из-за отсутствия поддержки сообщества/интереса.
- Если есть клиент Python, который умеет "говорить JMS", это было бы потрясающе, но приемлемым был ответ, включающий задачу написать мой собственный уровень JMS Python.
Мне было неожиданно трудно найти решение для этого. Apache ActiveMQ не поддерживает Python. ZeroMQ требует рандеву. RabbitMQ, похоже, не поддерживает JMS. Лучший кандидат, который я нашел, - это комбинация ActiveMQ и библиотеки pyactivemq. Но первый и последний выпуск pyactivemq был в 2008 году, так что, похоже, это не соответствует моему требованию "без бахромы".
Идеальный ответ - это имена одного или нескольких хорошо поддерживаемых и хорошо документированных пакетов с открытым исходным кодом, которые вы лично использовали для связи между Java/JMS и Python-приложением, и которые не требуют большой интеграции работа для начала. Ответ, который включает в себя "легкую" (до нескольких дней работы) реализацию дополнительного кода клея для удовлетворения всех вышеперечисленных требований, будет приемлемым. Коммерческое решение, в отсутствие хорошего кандидата с открытым исходным кодом, также будет приемлемым.
Кроме того, Jython отсутствует. (Если бы я мог...) Те же приложения Python должны будут использовать модули, доступные только в CPython.