2010-02-25 23 views
37

我对开始使用Amazon SQS开发某些开发很感兴趣,也许是SimpleDB,我的问题是,是否有任何开源解决方案模仿功能,仅用于开发目的。我已经遇到了用于创建EC-esque云的Eucalyptus项目(http://open.eucalyptus.com)。在开发过程中模拟Amazon SQS

我还没有取得任何成功与谷歌,我怀疑这是因为进入的成本是如此便宜,但仍然,有没有人知道这样的事情?

回答

27

一些亚马逊的SDK的具有“模拟”模式,这是:

模拟服务是一种替代方法 使用样本代码。服务 不调用AWS,而是返回 您可以修改为 的设置响应满足您的需求(XML响应 文件位于Mock目录中)。 模拟服务可以让您轻松测试 测试您的应用程序如何处理 不同的响应。

对于SQS,看起来Perl和PHP SDK都有模拟模式。我知道Amazon RDS的.NET SDK也具有模拟模式。

的Java SDK中不包含mock实现:

客户端mock实现已被删除。相反,鼓励开发 使用更灵活,功能齐全的模拟库, 如EasyMockjMock

如果您将使用不具备模拟模式中提供的SDK,你很可能创建自己的类似的类型的东西,它返回预配置的响应,而不是实际上打开服务。

See here更多信息

+0

非常感谢,这是理想! – 2010-03-02 18:18:24

+2

请参阅下面关于Java SDK的回答。 – tkotisis 2012-11-14 09:39:23

3

如果您在.NET或单可以尝试Stratosphere。它具有模拟SimpleDB,SQS和S3的本地实现。对于SimpleDB模拟实现,它使用SQLite,对于SQS和S3,它将消息/对象存储在文件系统中。

60

对于SQS,我写了ElasticMQ,您可以运行嵌入式(它是用Scala编写的,因此可以在JVM上运行),也可以独立运行。它具有持久性和内存模式,第一种适用于开发,第二种适用于测试。

+4

伟大的工作!这正是我所期待的。 – 2015-08-06 19:01:43

+1

我们在本地和我们的单元/集成测试中使用了ElasticMQ,并且它完美地工作。这应该是选定的答案。 – anataliocs 2017-02-17 22:42:07

+1

这应该是所选答案的确。 – deadlock 2017-05-03 23:14:37

9

关于Java的SDK,它不再包含mock实现:

客户端mock实现已被删除。相反,开发商 鼓励使用更灵活,功能齐全的模拟库, 如EasyMockjMock

1

,如果你需要模拟SNS以及SQS你可以检查出:Yopa