В сервере очереди памяти

Кто-нибудь знает, есть ли эквивалент базы данных H2 для очередей RabbitMQ (или с возможностью расширения, чтобы сделать его совместимым с RabbitMQ)?

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

Ответ 1

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

А именно, клиентская библиотека, внедренная для использования AMQP 0.9.1, теоретически должна иметь возможность подключиться к брокеру, который реализует AMQP 0.9.1. Это, очевидно, связано с некоторыми ограничениями на конкретные функции, реализованные в клиенте/брокере, которые не определены в стандарте AMQP.

Более подробную информацию о поддерживаемых функциях можно найти ниже по следующему URL: https://www.rabbitmq.com/interoperability.html

Я использую Apache Qpid в качестве встроенной замены для сервера RabbitMQ.

Самый простой способ начать - создать исходный файл конфигурации из двоичного исполняемого файла Qpid (задокументированный в руководстве для брокера Java), затем использовать его в коде для запуска брокера:

BrokerOptions configuration = new BrokerOptions("path-to-initial-configuration.json);
Broker broker = new Broker();
broker.startup(configuration);