【问题标题】:Mocking out a message queue模拟消息队列
【发布时间】:2014-12-22 03:13:32
【问题描述】:

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

有哪些方法可以为本地开发构建虚假消息队列服务?我想拥有以下一些功能:

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

这可能吗?

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

还有什么?

【问题讨论】:

    标签: mocking jms message-queue


    【解决方案1】:

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

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

    @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();
    }
    

    【讨论】:

      猜你喜欢
      • 2011-04-27
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 2014-07-19
      相关资源
      最近更新 更多