我的应用程序使用大量消息队列连接,这使我很难在本地运行环境。目前,我只是连接到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();
}