2012-12-11 54 views

回答

1

JMSMSMQ都提供了類似的排隊基礎設施。根據您的平臺,您可以使用其中任何一種技術。兩者都很強大。除了磁盤備份的事務性隊列之外,MSMQ還可以提供內存中(非事務性)隊列。

RabbitMQ是另一個應該提供SQS功能超集的流行選擇。但是,我沒有直接的經驗。

創建一個模仿SQS接口的包裝應該相當簡單。

UPDATE

的ActiveMQ提供了一個REST API。但是,API與SQS的API不同。

您可以使用它幷包裝API差異,也可以創建自己的REST API,它精確地鏡像SQS API幷包裝您希望的任何MQ系統。

http://activemq.apache.org/restful-queue.html

+0

我應該更清楚。我正在尋找與SQS具有相同REST API的東西,這實質上是單元測試目的的替代替代品。 –

+1

ActiveMQ提供了一個REST API(儘管與SQS稍有不同* REST API)。您可以使用它幷包裝API差異,也可以創建自己的REST API,它精確地反映SQS API幷包裝您希望的任何MQ系統。 –

+0

我試圖測試的東西_is_包裝。這個想法是讓包裝器在單元測試中使用僞裝(以便使其測試健壯和快速)並且對僞裝進行完整的集成測試(以確保其行爲繼續與底層服務相同)。 –

5

您也可以嘗試ElasticMQ,https://github.com/adamw/elasticmq,它實現了SQS接口,並同時具有內存和DB支持的存儲器。

+0

這是我已經做了一段時間,現在取得了很多成功。如果Gradle是你的構建系統,我已經編寫了一個插件來自動啓動它作爲構建的一部分:http://bit.ly/1sbLoff – tddmonkey