【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

  • 2010-05-27
  • 本文字数:1357 字

    阅读完需:约 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,动态语言应用、云计算、移动互联等相关技术。

2010-05-27 22:594570

评论

发布
暂无评论
发现更多内容

软件测试 | 走出自动化测试认知的误区

测吧(北京)科技有限公司

测试

V8中的快慢属性(图文分解更易理解😃)

甜点cc

6 月 优质更文活动

时序数据库 TDengine 六周年庆典活动圆满落幕,现场火爆

爱倒腾的程序员

涛思数据 时序数据库 ​TDengine

软件测试 | 巧用监听器—识别性能缺陷

测吧(北京)科技有限公司

测试

回顾|开源之夏校园行兰州大学站

MatrixOrigin

分布式数据库 HTAP MatrixOrigin MatrixOne 超融合数据库

扫描挖矿DAPP逐渐成为主流,技术上有哪些特点?

加密先生

D8调试工具——jsvu的使用细则

甜点cc

6 月 优质更文活动

王炸,英特尔PowerVia芯片背面供电即将量产,遥遥领先三星和台积电

E科讯

软件测试 | 借助Ant实现批量测试和报表生成

测吧(北京)科技有限公司

测试

软件测试 | 自动化测试的基本流程

测吧(北京)科技有限公司

测试

开源“上天入地”的本领都在这!2023开放原子全球开源峰会「开源展览」一文拿捏!

开放原子开源基金会

开源 开放原子全球开源峰会 开源展览

MobPush 查看推送数据

MobTech袤博科技

直播预告|MLOps + LLM = LLMOps LLMOps meetup 了解大模型背景下的MLOps

星策开源社区

AI 大模型 MLOps LLM LLMOps

关于低代码开发的一些个人看法

这我可不懂

低代码 应用开发 JNPF

还在为开发难度发愁?这个低代码平台能让你轻松搞定!

加入高科技仿生人

低代码 数字化 数智赋能

霍格沃兹测试开发线下班开班啦~

测吧(北京)科技有限公司

测试

RocketMQ 学习社区重磅上线!AI 互动,一秒了解 RocketMQ 功能源码

阿里巴巴云原生

阿里云 AI RocketMQ 云原生

STEPN运动挖矿nft虚拟跑鞋app系统开发(原生)

开发微hkkf5566

探访官招募 | InfoQ 写作社区 邀您探访 2023 亚马逊云科技中国峰会

InfoQ写作社区官方

热门活动

十大理由,说清企业为何需要 CI/CD

极狐GitLab

DevOps 自动化 CI/CD 降本增效 效能提升

软件测试 | 如何分析性能测试结果

测吧(北京)科技有限公司

测试

软件测试 | 常见的自动化测试架构

测吧(北京)科技有限公司

测试

.net低代码开发平台 快速实现组织架构数字化

力软低代码开发平台

赋能行业,因云而动 | 山西软件行业CXO思享会在太原成功举办,助力山西软件行业高质量发展

科技热闻

什么是智慧公共厕所?光明源智慧厕所

光明源智慧厕所

官宣!XTransfer与全球社交网络服务巨头Meta达成战略合作

XTransfer技术

什么是双机热备技术?华为和思科如何实现双机热备?

wljslmz

6 月 优质更文活动

软件测试 | 聚合报告(Aggregate Report)

测吧(北京)科技有限公司

测试

软件测试 | 分析确定性能测试指标

测吧(北京)科技有限公司

测试

软件测试 |BeanShell服务器

测吧(北京)科技有限公司

测试

1v1视频交友APP的详细搭建部署步骤和视频交友APP核心功能介绍

山东布谷科技胡月

一对一直播源码 一对一直播系统 1v1语音系统搭建 视频社交APP开发 1v1交友app开发

使用亚马逊的简单通知服务从云端推送消息_架构_Abel Avram_InfoQ精选文章