SQS 和 SNS 对比分析
目录
前言
一般说到 SQS 和 SNS,大家都会想要亚马逊的 sqs 和 sns,确实最早的定义是 Amazon 给出来的。其实,我们可以脱离具体的厂商,单独来讨论 SQS 和 SNS。
正文
总的来说,SQS 和 SNS 是亚马逊提出的两种关于消息队列的分布式方案。多多少少,我们可以借鉴其中很多优秀的思想。接下来,分别介绍一下 SQS 和 SNS。
SQS
SQS 是亚马逊提出的一种分布式的消息队列服务,这种队列服务收到任务或者消息后,不会主动发送给客户端,如果想要执行这些任务和获取这些信息需要客户端主动轮询消息队列服务。这样,不同的客户端就可以根据自己查询到的任务和消息去执行对应的操作,最后把执行结果回调回去,从而实现分布式系统。
SNS
SNS 是亚马逊提出的一种分布式的发布-订阅模式的消息服务,当发布者把消息发送给消息服务后,消息服务会把该消息推送给相应的订阅者。订阅者(客户端)收到消息后再去执行对应的操作,最后把执行结果回调回去,从而实现分布式系统。
二者的区别
关于 SQS 和 SNS 二者的区别,下面进行简单的整理。
1. 实时性
前者较差,消息非常多时候需要排队,后者较好,当订阅者充足时,可以保证消息实时传达。
2. 服务策略复杂度
前者简单,后者复杂,需要处理任务调度问题。
3. 客户端获取消息的方式
前者主动轮询,后者等待推动。
4. 服务器处理消息的方式
前者放入消息队列,等待客户端轮询;后者主动推送到订阅者。
二者的联系
说到 SQS 和 SNS 的联系,其实在很多场景下,二者是可以配合使用的,各取每种模式的优点,在不同的场景下执行不同的策略,保证服务的稳定性和实时性。
作者简介:大家好,我是 Data-Mining(liuzhen007),是一位音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,公众号:玩转音视频。同时也是 CSDN 博客专家、华为云社区云享专家、签约作者,欢迎关注我分享更多干货!
版权声明: 本文为 InfoQ 作者【liuzhen007】的原创文章。
原文链接:【http://xie.infoq.cn/article/82cced8d2303668bb0cffd4da】。文章转载请联系作者。
评论