PubNub实时网络和Amazon SNS
来源于Quora的原始答案:使用PubNub与使用Amazon SNS相比有哪些优缺点?
![使用PubNub与使用Amazon SNS相比有哪些优缺点?](https://istack.dev59.com/QeYsy.webp)
PubNub实时网络和Amazon SNS都使用发布/订阅模式来发送和路由数据。然而,这就是比较的结束。这两个服务提供不同的功能并解决不同的业务问题;它们不能互相替代。
将数据发布到终端用户设备:PubNub vs SNS
PubNub专为向终端设备(包括智能手机、平板电脑、浏览器和笔记本电脑)传递低延迟数据(SLA低于0.25秒)而设计,这些设备可能位于防火墙、NAT环境、基站授权和其他难以到达的网络环境中。PubNub通过对每个设备维护一个始终开放的套接字连接,并利用此开放的套接字连接以低延迟“推送”数据来实现这一点。PubNub提供50多个客户端SDK库,使得使用简单的PubNub订阅API调用轻松“插入”PubNub实时网络成为可能。
相反,亚马逊SNS无法直接通过客户端设备进行通信,除非通过电子邮件或短信通知。因此,对于依赖低延迟数据的应用程序(例如多人游戏、聊天应用程序、协作应用程序等),Amazon SNS不是正确的解决方案。 Amazon SNS向订阅者发送数据的主要方式是通过电子邮件或HTTP回调。在移动、浏览器和桌面设备上运行HTTP服务器以接收这些通知是不切实际的,这既因为网络防火墙,也因为设备安全原因。 Amazon SNS的主要用途是用于服务器到服务器的发布/订阅用例,或者用于电子邮件和短信通知终端用户。关于常见的Amazon SNS用例的良好解释在这里:
Amazon的简单通知服务有哪些好用的用例?。 Amazon SNS不是适用于应用内实时通知的正确工具。 Amazon SNS更类似于Tibco或Tuxedo,这是服务器到服务器的发布/订阅系统。
PubNub实时网络与SNS的功能特点
除了简单的发布/订阅之外,PubNub实时网络还提供了一系列“构建块”服务,适用于任何类型的实时应用程序。这些服务不是由Amazon SNS或其他Amazon服务提供的:
- PubNub Presence -- 提供实时更新在线用户以及离线警报。这些更新通过多路复用的PubNub“姐妹通道”提供,每当应用程序中的用户计数更改时,就会流式传输存在更新。另外一个名为“Here_Now()”的API也提供了应用程序中用户的最新计数。
- PubNub Storage/Playback -- PubNub自动存储发布到每个频道的所有数据,并提供两种检索此数据的机制:(a) 一次性检索数据的简单REST请求,和(b) 类似于电视录像机的“播放”机制来回放此数据。
- PubNub实时分析 -- PubNub提供各种可视化和使用统计信息,以显示用户活动、地理位置和使用情况。下面是一个示例截图:
![PubNub Real-Time Network (RTN) Global Map Visual Data](https://istack.dev59.com/wVSoi.webp)
- PubNub离线移动推送 -- PubNub还提供了一种针对移动设备的消息回退机制,用于在移动应用程序未运行(或在后台)时。PubNub可以回退到移动“推送通知”,确保即使手机在口袋中,移动端用户也能收到通知。一旦启动应用程序,应用程序将再次开始使用PubNub的实时网络。
- AES加密 -- PubNub提供开箱即用的AES 256加密支持,确保数据在通过PubNub网络路由时仍然加密。虽然Amazon SNS提供HTTPS,但这意味着数据在通过Amazon网络路由时是未加密的。这立即使Amazon SNS不能用于HIIPA、SAS70和其他安全性高的应用程序。
- 多路复用 -- PubNub通过一种机制增强了多信道通信,该机制允许所有数据主题在单个TCP套接字连接上流式传输。通过PubNub多路复用,节省最明显的是移动设备资源,比如电池供电的手机和较慢的网络连接。数据通过可配置的窗口化进行压缩和捆绑,以提供更长的电池寿命,并在不断变化的网络条件下改善终端用户体验。
延迟(即“实时”)PubNub与SNS
因为PubNub通过现有的、已建立的开放网络套接字传递数据,所以95%的订阅设备从发布到订阅的延迟在0.25秒以下。如果事件在0.6-0.7秒内被感知,大多数人会认为它是“实时”的。Amazon SNS不提供延迟保证,大多数延迟超过1秒,并且通常比许多秒慢。再次说明,这在某种程度上是无关紧要的;Amazon SNS设计用于服务器到服务器(或电子邮件/短信)通知,其中许多秒的延迟通常是可接受和预期的。
PubNub和SNS的频道/主题和复用
Amazon SNS允许在一个账户上创建多达100个“主题”(请参见Amazon Simple Notification Service (SNS))。一个“主题”等同于一个PubNub频道。相反,PubNub支持无限数量的PubNub频道。今天,一些客户每月通常使用超过100万个频道。这使得每个终端用户设备都可以拥有自己的频道进行一对一连接。
此外,PubNub对于
多路复用的支持,允许客户端设备同时连接到多个PubNub频道,同时继续使用单个网络套接字。这使得客户端可以同时订阅例如“私人”频道,该频道专门配对单个设备或由同一人拥有的设备集,并且“公共”频道,整个群体或整个人口也可以订阅。
多路复用的另一个用例是流媒体股票价格应用程序:假设您想要为1,000种不同的股票流传股票价格变化。每只股票都有自己的PubNub频道。最终用户设备将使用PubNub多路复用仅订阅与他们想要跟踪的股票相关的PubNub频道。
由于Amazon SNS不支持多路复用,因此这种用例不可能实现。
PubNub实时网络与SNS的可靠性和冗余性。
PubNub实时网络在全球分布着12个数据中心,并且还在不断增长。所有发布到PubNub全局云的数据都会自动进行全球复制,提供低延迟和无与伦比的可靠性,即使整个数据中心发生故障也是如此。PubNub为其实时网络提供高达99.999%的SLA正常运行时间。Amazon SNS是一个测试版服务,因此没有服务等级协议。
PubNub实时网络和SNS的摘要
Amazon SNS有各种有趣的用途,主要涉及服务器对服务器的通知以及电子邮件/短信终端用户警报。它最初是作为在各种其他Amazon AWS云服务之间编排数据的一种方式而开发的,因此主要用于服务器后端操作和数据移动。
PubNub实时网络旨在使构建移动、浏览器和桌面上的实时应用程序轻松扩展到数百万同时用户的全球范围内。今天,PubNub已经在全球超过2,000个应用程序中使用,涵盖社交、广告、游戏、电信和各种其他市场。