使用Java中的Amazon SQS和SNS

use*_*973 6 java amazon-s3 amazon-sqs amazon-web-services amazon-sns

我第一次遇到Amazon SQS和Amazon SNS.我将在Java工作地点使用这些工具.

我有几个关于这些的问题,

  1. 我没有那么多的Java知识,我不能说我已经走了那么先进,但是我可以说我有中级知识.那么我可以触摸这些区域吗?

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

任何建议或评论都会有用.

Ale*_*ira 6

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

我想出了一些用例:

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

  • 不同的可扩展性配置文件:一个常见的例子是您上传视频并将其编码到多个平台的Web应用程序,您可能希望创建具有不同组件的不同自动缩放组,视频上载/浏览(许多服务器)和视频编码较少的服务器但是更高的容量,使用情况与前面的例子类似.

  • 触发并行活动的执行:订单处理完毕后,您必须向客户发送电子邮件,通知仓库准备海关交货,告诉运输服务从仓库取货并在客户地址交货,然后您应该使用您发布业务事件的SNS主题,并有3个组件监听,执行以下操作:

    1. 邮件格式化和发送
    2. 仓库服务电话
    3. 运输服务电话

可能有许多其他用法场景,如果你告诉你的解决方案需要做什么,也许我们可以帮助更精确.


DNA*_*DNA 5

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

http://aws.amazon.com/sns/http://aws.amazon.com/sqs/上有介绍性信息,并提供了详细文档的链接。

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

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