我的应用程序使用大量消息队列连接,这使我很难在本地运行环境。目前,我只是连接到DEV或TEST环境,当这些环境中存在问题时可能会出现问题。

我可以通过哪些方式为本地开发构建伪造的消息队列服务?我希望具有以下某些功能:


处理来自多个进程的并发读/写
可靠的消息使用(通过可见性超时)
保证最多一次交货


这可能吗?

我考虑过的事情包括:
-构建模拟的JMS服务并将其部署到某处(或在VM中运行)
-实现一个模拟服务,该服务根据传入的消息返回不同的响应

还要别的吗?

最佳答案

您可以在unit tests中使用嵌入式ActiveMQ Broker之类的东西来测试应用程序各个部分的行为。

创建嵌入式代理非常简单,您可以根据要测试的内容等为不同的测试调整配置。

@Before
public void startBroker() throws Exception {
    brokerService = new BrokerService();
    brokerService.setPersistent(false);
    brokerService.setUseJmx(false);
    brokerService.addConnector("tcp://localhost:0");
    brokerService.start();
    brokerService.waitUntilStarted();

    brokerURI = brokerService.getTransportConnectorByScheme("tcp").getPublishableConnectString();
}

10-07 16:28