【问题标题】:In memory queue server在内存队列服务器中
【发布时间】:2014-07-02 05:19:58
【问题描述】:

有谁知道是否有与 RabbitMQ 队列等效的 H2 数据库(或具有使其与 RabbitMQ 兼容的扩展能力)?

我想运行集成测试,而无需启动并连接到外部 RabbitMQ 服务器。如果我可以在执行一组测试之前启动服务器,连接到它,然后在执行下一组测试之前关闭所有内容,那就更好了。

【问题讨论】:

  • 基本上,您正在寻找可以嵌入的 RabbitMQ 替代品。你确定 RabbitMQ 本身没有嵌入选项吗?例如,ActiveMQ 就是这样做的。 activemq.apache.org/…
  • 感谢您的建议。我没有专门找这个,但我会看看。因为它使用 erlang 运行,所以它似乎没有提供该功能,因为它的依赖关系。

标签: java rabbitmq in-memory


【解决方案1】:

经过一些研究,我发现相同版本的 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);

【讨论】:

  • 就在现场!我怀疑我会在使用“发布者确认”/“发布者返回”功能时遇到问题,这不是标准的一部分。一旦我知道如何处理这个问题,我就会在这里发布我的结果。
猜你喜欢
  • 2018-12-18
  • 2018-01-26
  • 1970-01-01
  • 1970-01-01
  • 2014-09-02
  • 1970-01-01
  • 2014-02-23
  • 2014-07-26
  • 1970-01-01
相关资源
最近更新 更多