Библиотека AMQP 1.0 для Java с полной одноранговой поддержкой (без посредников)? - PullRequest
1 голос
/ 08 апреля 2020

Относительно вопроса выше: существует ли библиотека Java для AMQP 1.0, которая полностью поддерживает одноранговую (точка-точка, без посредников) функциональность?

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

До сих пор я использовал клиентскую библиотеку SwiftMQ AMQP 1.0, которая подходит для отправки и получения через брокера (здесь используется сервер RabbitMQ без любой fl aws), а также для отправки непосредственно на другую конечную точку.

Другая конечная точка записывается в C# с использованием библиотеки AMQPNetLite. Я обнаружил, что библиотека AMQPNetLite обеспечивала упомянутую функциональность через класс ContainerHost (см. Также здесь ).

Я думаю, что QPID Proton-J каким-то образом поддерживает то, что я есть ищу, но документация и примеры встречаются редко. Вариант Python библиотеки протонов QPID также показывает класс Container в в этом примере . Однако ни класс Container, ни что-то похожее не содержится в библиотеке QPID Proton-J (Java).

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

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

Не связывайтесь с протоколом AMQP 1.0. Это слишком сложно. Клиент SwiftMQ AMQP 1.0 работает безупречно, потому что все использовали его для тестирования своей реализации.

Вам нужен встроенный брокер, который вы запускаете intravm. Какой из них вы используете, не имеет значения, но это должно быть Java Я думаю. Так что go для Artemis или даже SwiftMQ CE, который также является открытым исходным кодом.

Затем подключите ваш клиент к локальному встроенному брокеру и настройте его для открытия порта AMQP.

0 голосов
/ 09 апреля 2020

Нет каких-либо активно поддерживаемых Java реализаций одноранговой поддержки, о которых я знаю. Проект proton-j имеет довольно старый экспериментальный API, называемый реактором, который может это делать, но не поддерживается и, вероятно, содержит значительное количество ошибок. Проект vertx-proton имеет относительно наивную серверную реализацию, которая может сработать для вас, но я не знаю, насколько активно она поддерживается, поэтому вам придется попробовать ее и посмотреть, как она идет.

Вы можете написать свой собственный, хотя протокол AMQP имеет много сложностей, поэтому вам нужно взвесить, насколько важен одноранговый протокол по сравнению с чем-то вроде встроенного брокера или простого маршрутизатора сообщений . Здесь есть некоторый базовый c код сервера AMQP здесь , с которого можно начать писать свой собственный механизм на основе proton-j.

...