使用pubnub而不是Amazon Simple Notification Service(sns)有什么优势和劣势?

cha*_*han 10 notifications push-notification amazon-web-services amazon-sns pubnub

对于我的团队项目,我需要建议我们应该使用PubNub或Amazon Simple Notification Service(SNS).我发现PubNub的实现和使用非常简单但是我找不到任何具体的东西,它说明了亚马逊SNS的优点和缺点.

Ste*_*lum 11

PubNub实时网络和Amazon SNS

源自Quora的原始答案:使用PubNub而不是Amazon SNS有哪些优缺点?

使用PubNub而不是Amazon SNS有什么优缺点?

无论PubNub实时网络和Amazon SNS使用发布/订阅的比喻来发送和路由数据.但是,这是比较结束的地方.这两项服务提供不同的功能,解决不同的业务问题; 一个人不能取代另一个人.

发布到最终用户设备PubNub vs SNS

PubNub明确设计用于向终端用户设备(包括智能手机,平板电脑,浏览器和笔记本电脑)提供低延迟(低于0.25秒SLA)的数据.这些设备可以位于防火墙,NAT环境,蜂窝塔管理机构和其他难以到达的网络环境之后.PubNub通过维护与每个设备的始终打开的套接字连接,并使用此开放套接字连接以低延迟"推送"数据来实现此目的.PubNub提供了50多个客户端SDK库,可以通过简单的PubNub Subscribe API调用轻松"插入"PubNub实时网络.

相反,除了通过电子邮件或短信通知之外,Amazon SNS无法访问客户端设备.因此,对于依赖低延迟数据的应用程序(例如多人游戏,聊天应用程序,协作应用程序等),Amazon SNS不适合此环境.Amazon SNS向订阅者发送数据的主要方式是通过电子邮件或HTTP回调.由于网络防火墙和设备安全原因,在移动设备,浏览器和桌面设备上运行HTTP服务器以接收这些通知是不切实际的.Amazon SNS的主要用途是用于服务器到服务器的发布/订阅用例,或电子邮件和文本消息最终用户通知.常见的Amazon SNS用例的一个很好的解释如下:亚马逊的简单通知服务有什么用途?.Amazon SNS不是应用内实时通知的正确工具.Amazon SNS更类似于Tibco或Tuxedo,它们是服务器到服务器的发布/订阅系统.

功能PubNub实时网络与SNS

除了简单的发布/订阅之外,PubNub实时网络还为任何类型的实时应用程序提供了一系列"构建块"服务.Amazon SNS或其他亚马逊服务不提供这些服务:

  • PubNub Presence - 提供用户在线的实时更新,以及离线时的警报.这些更新是通过多路复用的PubNub"姐妹频道"提供的,只要应用中的用户数发生变化,就会流式传输状态更新.另一个名为"Here_Now()"的API还为应用中的用户提供了最新的计数.
  • PubNub存储/回放 - PubNub自动存储发布到每个通道的所有数据,并提供两种检索此数据的机制:(a)一次性检索数据的简单REST请求,以及(b)"播放"的回放机制"此数据类似于用于电视录制的DVR.
    PubNub实时分析 - PubNub提供各种可视化和使用情况统计信息,以显示用户活动,地理位置和使用情况.下面是一个示例截图:

PubNub实时网络(RTN)全球地图可视化数据

  • PubNub离线移动推送 - 当移动应用程序未运行(或在后台)时,PubNub还为移动设备的消息提供回退机制.PubNub可以回退到移动"推送通知",确保即使手机放在口袋里,也会通知移动终端用户.应用程序启动后,应用程序将再次开始使用PubNub的实时网络.
  • AES加密 - PubNub提供开箱即用的AES 256加密支持,确保数据在通过PubNub网络路由时保持加密状态.虽然Amazon SNS提供HTTPS,但这意味着在通过Amazon网络路由时数据未加密.这会立即使Amazon SNS无法用于HIIPA,SAS70和其他具有安全意识的应用程序.
  • 多路复用 - PubNub通过一种机制增强了多通道通信,该机制允许通过单个TCP套接字连接传输所有数据主题.使用PubNub Multiplexing,移动设备资源(例如电池电话和较慢的网络连接)可显着节省成本.数据通过可配置窗口进行压缩和捆绑,以在不断变化的网络条件下提供更长的电池寿命和改善的最终用户体验.

延迟(即"实时")PubNub vs SNS

由于PubNub通过现有的已建立的开放式网络套接字提供数据,因此在订阅设备的95%百分比中,从发布到订阅的延迟时间不到0.25秒.如果事件在0.6-0.7秒内被感知,大多数人会认为事物是"实时的".Amazon SNS不提供延迟保证,绝大多数延迟的测量时间超过1秒,通常慢几秒.再次,这有点无关紧要; Amazon SNS专为服务器到服务器(或电子邮件/ SMS)通知而设计,其中许多秒的延迟通常是可接受的和预期的.

频道/主题和多路复用PubNub和SNS

Amazon SNS允许在帐户上创建最多100个"主题"(请参阅Amazon Simple Notification Service(SNS))."主题"等同于PubNub通道.相反,PubNub支持无限数量的PubNub频道.如今,一些客户每月经常使用超过100万个频道.这允许每个终端用户设备具有用于一对一连接的自己的信道.

此外,PubNub对Multiplexing的支持允许客户端设备同时连接到多个PubNub通道,同时继续使用单个网络套接字.这允许客户端同时订阅例如专门与同一个人拥有的单个设备或一组设备配对的"私人"频道,以及一个或整个群体也可以订阅的"公共"频道. .

Multiplexing的另一个用例是流媒体股票价格应用程序:假设您想要为1,000个不同的股票流动股票价格变化.每只股票都有自己的PubNub频道.最终用户设备将使用PubNub Multiplexing仅订阅与他们想要跟踪的股票相关联的PubNub通道.

由于Amazon SNS不支持Multiplexing,因此无法使用此类用例.

可靠性和冗余PubNub实时网络与SNS

PubNub实时网络在全球分布在12个数据中心并且不断增长.发布到PubNub Global Cloud的所有数据都会自动在全球范围内进行复制,在全球范围内提供低延迟,并且即使在整个数据中心发生故障时也具有无与伦比的可靠性.PubNub为其实时网络提供高达99.999%的SLA正常运行时间.Amazon SNS是测试版产品,因此没有服务级别协议.

PubNub实时网络和SNS摘要

Amazon SNS有许多有趣的用途,主要与服务器到服务器通知和电子邮件/ SMS最终用户警报有关.它最初是作为在各种其他Amazon AWS云服务之间编排数据的方式而开发的,因此主要用于服务器后端操作和数据移动.

PubNub实时网络的设计可以很容易地建立在移动,浏览器实时的应用程序,并且,在全球范围扩展到数百万的并发用户的桌面.如今,PubNub已经在全球2,000多个应用程序中使用,涵盖社交,广告,游戏,电信和各种其他市场.

  • 事实并非如此:"相反,除了通过电子邮件或短信通知,亚马逊SNS无法访问客户端设备".亚马逊SNS大约半年前通过GCM和APNS添加了本机消息传递. (4认同)
  • 显然,您很坦率地介绍了自己的身份,但您所写的有关 SNS 的内容在某些情况下总体上是夸大事实的。尽管您关于 SNS 是为服务器到服务器通信而设计的断言是正确的,但您认为这些用例可能不是 SNS 上最简单或最好的,这是正确的。以下是一些更正: 1) 多路复用 - 您提到的用例可以通过将 SNS 和 SQS 与客户端长轮询 SQS 结合使用来轻松实现。 (2认同)
  • 2) 100 个主题 - 您可以在此处轻松请求增加主题数量:https://aws.amazon.com/contact-us/?sc_ichannel=HA&sc_ipage=what-is-cloud-computing&sc_iplace=2up&sc_iccampaigntype=general_info&sc_iccampaign=ha_sales&sc_icountry =US&TRK=HA_what_is_2up_sales (2认同)