有没有人知道RabbitMQ队列是否有H2数据库等效(或具有扩展功能以使其与RabbitMQ兼容)?
我想运行集成测试而无需启动并连接到外部RabbitMQ服务器。如果我可以在执行某组测试之前启动服务器,连接到它然后在执行下一组测试之前关闭所有内容,那就更好了。
答案 0 :(得分:8)
经过一番研究后,我发现同一版本的AMQP可以在经纪人和客户之间实现互换。
即,实现使用AMQP 0.9.1的客户端库理论上应该能够连接到实现AMQP 0.9.1的代理。对于未在AMQP标准中定义的客户端/代理中实现的特定功能,这显然存在一些限制。
有关支持的功能的更多详细信息,请参阅以下网址: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);