BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

使用亚马逊的简单通知服务从云端推送消息

| 作者 Abel Avram 关注 7 他的粉丝 ,译者 池建强 关注 4 他的粉丝 发布于 2010年5月29日. 估计阅读时间: 4 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

亚马逊近期推出了一项新服务,称为简单通知服务,简称SNS,这种新服务提供了从云端设置、发布和传递通知的能力,该服务的主要应用领域包括监控应用系统,工作流系统,移动应用或其他基于通知机制的应用系统。

亚马逊还有另一项通知服务,称为简单队列服务,简称SQS,采用轮询的方式处理消息。SQS主要用于分布式系统间的通讯,把消息发送并存储到队列中,等待客户端使用。客户端会定期去轮询队列,检索任何感兴趣的消息。这种方式实现了消息发送者和接收者的解耦。

与SQS不同的是,SNS采用了推送的方式进行通知。一个应用系统或管理员通过图形界面工具创建一个主题或由标题定义的接入点,或者事件类型。主题的拥有者决定谁可以发布和订阅主题,以及在通讯过程中使用哪种协议(HTTP、HTTPS、Email、Email-JSON、SQS queue)。客户端可以通过这些接入点去订阅自己感兴趣的主题,同时需要提供URL或Email地址来接收通知。当系统需要发送一条消息时,直接发送到接入点即可,SNS服务会处理整个传递过程。

发布者通过电子邮件发送的消息将只包含电子邮件的邮件正文,这是为了确保将消息邮寄给应该阅读这些消息的人。所有其他的协议使用JSON包来自动处理和容纳如下信息:

  • 消息ID:唯一ID,每个通知对应一个唯一ID。
  • 时间戳:每个通知的发布时间,以格林尼治标准时间为准
  • 主题:消息发送所对应的主题
  • 类型:传递消息的类型,也就是为各种需要发布的通知设置“通知”类型
  • 取消订阅URL:用来取消终端对主题订阅的链接,保证以后不再收到通知
  • 消息:从发布者那里接收到的有效的消息载体
  • 标题:标题字段 – 如果这是包含在消息中作为发布API的一个可选参数的话。
  • 签名:消息、消息ID,标题(如果有),类型,时间戳和主题值都使用了基于“SHA1withRSA”算法的Base64编码签名
  • 签名版本:亚马逊SNS服务签名使用的版本

如果消息无法发送,SNS系统会把消息存储下来并在稍后重新尝试发送,直到客户端接收到它。消息以冗余的方式存储在多个系统和数据中心里。其他一些需要考虑的技术细节包括:

  • 由于“潜在的网络问题或电子邮件传递限制”,SNS不能100%保证把所有消息都传递给用户。如果是非常紧急或重要的消息传递,亚马逊建议采用SQS队列来发送通知。
  • 由于SNS系统的分布式特性,用户可能多次收到同一个消息。
  • SNS不能保证按照发布消息的先后顺序接收消息。
  • 消息被发布后不能删除。
  • 亚马逊选择了打造自己的API,而不是使用一个开放的协议,比如高级消息队列协议(AMQP)或OASIS Web服务通知(WSN)。这也就意味着SNS是绑定在亚马逊Web服务(AWS)上的。

目前,消息的最大长度是8KB,通过HTTP发送100,000个通知需要花费$0.06,发送100,000邮件需要花费$2。第一次使用100,000个HTTP通知和每月1000封电子邮件是免费的。SQS消息不收费。除了这些费用之外,还有一些费用与数据在亚马逊SNS中输入输入有关。

查看英文原文:Pushing Messages from the Cloud with Amazon Simple Notification Service


译者简介:池建强,12年软件从业经验,先后在洪恩软件和用友集团任职。目前在用友集团瑞友科技IT应用研究院任副院长,负责公司基础应用平台的研发和整个公司的技术管理。主要关注领域:企业应用软件平台研发、领域驱动设计,OSGi,动态语言应用、云计算、移动互联等相关技术。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT