2012-09-13 95 views
6

我第一次遇到Amazon SQS和Amazon SNS。我将在我的Java工作场所与这些人一起工作。在Java中使用Amazon SQS和SNS

我有这几个问题,

  1. 我没有那么多的Java的知识,我不能说我已经是先进的,但肯定的,我可以说,我有一个中间的知识。那么我可以触摸这些区域吗?

  2. 这些服务究竟是什么以及它们如何有用?一个真实世界的例子会很有用。

任何建议或意见将是有用的。

回答

4

我不会说你需要高级Java知识才能使用它们 - 但为什么不尝试自己判断呢?适用于Java的AWS开发工具包可在http://aws.amazon.com/sdkforjava/

有介绍性信息http://aws.amazon.com/sns/http://aws.amazon.com/sqs/以及指向详细文档的链接。

无论何时您需要通过Internet发送系统各部分之间的可靠异步消息时,SQS都很有用。它可以节省您设置自己的可靠消息服务的工作量和成本,并提供可扩展性。当消息不必立即到达时,它是有用的,但不能丢失。账单(销售记录)和其他非时间关键的金融交易就是一个例子。请注意,SQS提供了“至少一次”的行为 - 在极少数情况下,它可能会多次传递消息。

SNS是发布 - 订阅,而不是基于队列;它是使用主题和订阅而不是普通队列的更加消费者驱动的消息传递风格。当信息的生产者可能不知道信息的所有潜在消费者及其确切需要时,这种风格是有用的。请参阅FAQ中的示例应用程序http://aws.amazon.com/sns/faqs/#0

5

它们应该用于支持您的软件组件之间的可靠通信,我认为这里的主要问题是为什么您应该将服务分成几个组件/层。

我想出了一些用例:

  • 长期运行的进程,可能会影响网络响应:一个最常见的例子是订单处理,其中支付/信用卡收费可以是一个有点慢,您创建了一个服务,可以为用户提供快速响应,然后向SQS队列发送消息,从而触发后台组件,从而完成所有繁重的工作;

  • 不同的可扩展性型材:一个常见的例子就是一个Web应用程序,您可以上传视频,它编码到多个平台,您可能希望创建具有不同的组件,视频上传/浏览(多台服务器)的不同自动缩放组和编码较少的服务器但具有较高容量的视频编码,其使用情况与前面的示例类似。平行活动

  • 触发器执行:后处理订单时,你必须在仓库发送e-mail给你的客户,通知仓库准备交付海关,告诉运输服务皮卡的项目,

    1. 邮件格式和发送
    2. 仓库服务呼叫
    3. 运输:在交付客户地址,那么你应该在其上发布一个商务活动,并有3个组成部分听力执行以下操作的使用SNS话题ORT服务呼叫

可能有很多其他用途的情况,如果你告诉你的解决方案需要做什么,也许我们可以帮助更多preciselly。