2014-10-26 96 views
2

我的應用程序使用了很多消息隊列連接,這使得我很難在本地運行我的環境。目前,我只是連接到DEV或TEST環境,在這些環境中存在問題時可能會出現問題。嘲笑一個消息隊列

有什麼方法可以爲本地開發構建假消息隊列服務?我想有以下一些功能:

  • 併發的處理讀取多進程/寫
  • 可靠的消息消費(通過可視性超時)
  • 保證在-最多一次交付

這可能嗎?

事情我已經考慮的因素包括: - 建立一個模擬JMS服務和地方部署它(或者在虛擬機上運行它) - 實現一個模擬服務,返回基於傳入消息的不同反應

還要別的嗎?

回答

2

你可以在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(); 
} 
調整不同的測試配置