【问题标题】:Emulating Amazon SQS during development在开发过程中模拟 Amazon SQS
【发布时间】:2010-02-25 18:07:59
【问题描述】:

我对使用 Amazon SQS 开始一些开发非常感兴趣,也许 SimpleDB 也是如此,我的问题是,是否有任何开源解决方案可以模仿该功能,仅用于开发目的。我已经遇到过用于创建 EC 式云的 Eucalyptus 项目 (http://open.eucalyptus.com)。

我在 google 上没有取得任何成功,我怀疑是因为入门成本太便宜了,但是,有人知道这样的事情吗?

【问题讨论】:

    标签: amazon-web-services amazon-sqs


    【解决方案1】:

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

    【讨论】:

    • 我们在本地和单元/集成测试中使用了 ElasticMQ,它运行良好。这应该是选定的答案。
    • 这确实应该是选择的答案。 ?
    【解决方案2】:

    如果您需要的不仅仅是 SQS 的测试替身,您可以尝试LocalStack

    为了模拟 SQS,它在内部使用 adamw 的 ElasticMQ mentioned

    例如,您可以通过 Docker 启动 LocalStack,它将启动以下服务:

    【讨论】:

      【解决方案3】:

      GoAws - https://github.com/p4tin/goaws - 刚刚作为测试版发布。 (免责声明 - 我是开发者)。

      【讨论】:

      • 如果您只需要 SQS 或 SNS,这是完美的,而且比 LocalStack 启动起来要快得多
      【解决方案4】:

      一些亚马逊 SDK 具有“模拟”模式,即:

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

      对于 SQS,Perl 和 PHP SDK 似乎具有模拟模式。我知道 Amazon RDS 的 .NET SDK 也有模拟模式。

      Java SDK 不包含模拟实现:

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

      如果您将使用的 SDK 没有可用的模拟模式,您可能会创建自己的类似类型的东西,它返回预先配置的响应,而不是实际启动服务。

      See here 了解更多信息

      【讨论】:

      • 请看我下面关于 Java SDK 的回答。
      【解决方案5】:

      如果您需要模拟 SNS 以及 SQS,您可以查看:Yopa

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          关于 Java SDK,它不再包含模拟实现:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-12-05
            • 1970-01-01
            • 2020-10-11
            • 2010-12-12
            • 2011-12-04
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多