导图社区 阿里云云消息队列
详细总结了阿里云云消息队列 RocketMQ ,云消息RocketMQ,云消息队列 RabbitMQ ,云消息队列 Kafka,云消息队列 MQTT 。
编辑于2024-01-20 09:44:44这是一篇关于DPIA流程和模板的思维导图,主要内容包括:DPIA模版,DPIA概述和范围,如何执行DPIA,可接受的DPIA标准,DPIA解决什么问题,DPIA执行标准。
本文翻译了GDPR并且添加了解析,深入剖析GDPR的各个方面,可以更好地理解这一法规的重要性,并为企业和个人在数据保护方面提供有益的指导和建议。非常有价值。
这是一篇关于信息安全技术 、数据安全能力成熟度模型Informatio的思维导图,主要内容包括:附 录 C (资料性附录) 能力成熟度等级评估流程和模型使用方法,附 录 B (资料性附录) 能力成熟度等级评估参考方法,DSMM架构,附 录 A(资料性附录) 能力成熟度等级描述与 GP,DSMM-数据安全过程维度,DSMM-安全能力维度。
社区模板帮助中心,点此进入>>
这是一篇关于DPIA流程和模板的思维导图,主要内容包括:DPIA模版,DPIA概述和范围,如何执行DPIA,可接受的DPIA标准,DPIA解决什么问题,DPIA执行标准。
本文翻译了GDPR并且添加了解析,深入剖析GDPR的各个方面,可以更好地理解这一法规的重要性,并为企业和个人在数据保护方面提供有益的指导和建议。非常有价值。
这是一篇关于信息安全技术 、数据安全能力成熟度模型Informatio的思维导图,主要内容包括:附 录 C (资料性附录) 能力成熟度等级评估流程和模型使用方法,附 录 B (资料性附录) 能力成熟度等级评估参考方法,DSMM架构,附 录 A(资料性附录) 能力成熟度等级描述与 GP,DSMM-数据安全过程维度,DSMM-安全能力维度。
阿里云云消息队列
云消息队列 RocketMQ
产品定位
云消息队列 RocketMQ 版是一款典型的分布式架构下的中间件产品,使用异步通信方式和发布订阅的消息传输模型。
产品具备异步通信的优势,系统拓扑简单、上下游耦合较弱,主要应用于异步解耦,流量削峰填谷等场景。
对于同步链路,需要实时返回调用结果的场景,建议使用RPC调用方案。
消息队列RocketMQ版领域模型
如图所示, 云消息队列 RocketMQ 版 中消息的生命周期主要分为消息生产、消息存储、消息消费这三部分。
消息生产
生产者(Producer) 云消息队列 RocketMQ 版 中用于产生消息的运行实体,一般集成于业务调用链路的上游。生产者是轻量级匿名无身份的。
消息存储
主题(Topic):云消息队列 RocketMQ 版消息传输和存储的分组容器,主题内部由多个队列组成,消息的存储和水平扩展实际是通过主题内的队列实现的。
队列(MessageQueue):云消息队列 RocketMQ 版消息传输和存储的实际单元容器,类比于Kafka中的分区。云消息队列 RocketMQ 版通过流式特性的无限队列结构来存储消息,消息在队列内具备顺序性存储特征。
消息(Message):云消息队列 RocketMQ 版的最小传输单元。消息具备不可变性,在初始化发送和完成存储后即不可变。
消息消费
消费者分组(ConsumerGroup):云消息队列 RocketMQ 版发布订阅模型中定义的独立的消费身份分组,用于统一管理底层运行的多个消费者(Consumer)。同一个消费组的多个消费者必须保持消费逻辑和配置一致,共同分担该消费组订阅的消息,实现消费能力的水平扩展。
消费者(Consumer):云消息队列 RocketMQ 版消费消息的运行实体,一般集成在业务调用链路的下游。消费者必须被指定到某一个消费组中。
订阅关系(Subscription):云消息队列 RocketMQ 版发布订阅模型中消息过滤、重试、消费进度的规则配置。订阅关系以消费组粒度进行管理,消费组通过定义订阅关系控制指定消费组下的消费者如何实现消息过滤、消费重试及消费进度恢复等。
通信方式介绍
分布式系统架构思想下,将复杂系统拆分为多个独立的子模块,例如微服务模块。此时就需要考虑子模块间的远程通信,典型的通信模式分为以下两种,一种是同步的RPC远程调用;一种是基于中间件代理的异步通信方式。
同步RPC调用模型
同步RPC调用模型下,不同系统之间直接进行调用通信,每个请求直接从调用方发送到被调用方,然后要求被调用方立即返回响应结果给调用方,以确定本次调用结果是否成功。
异步通信模型
异步消息通信模式下,各子系统之间无需强耦合直接连接,调用方只需要将请求转化成异步事件(消息)发送给中间代理,发送成功即可认为该异步链路调用完成,剩下的工作中间代理会负责将事件可靠通知到下游的调用系统,确保任务执行完成。该中间代理一般就是消息中间件。
异步通信的优势如下:
系统拓扑简单
由于调用方和被调用方统一和中间代理通信,系统是星型结构,易于维护和管理。
上下游耦合性弱
上下游系统之间弱耦合,结构更灵活,由中间代理负责缓冲和异步恢复。 上下游系统间可以独立升级和变更,不会互相影响。
容量削峰填谷
基于消息的中间代理往往具备很强的流量缓冲和整形能力,业务流量高峰到来时不会击垮下游。
消息传输模型介绍
主流的消息中间件的传输模型主要为点对点模型和发布订阅模型。
点对点模型
点对点模型也叫队列模型,具有如下特点:
消费匿名:消息上下游沟通的唯一的身份就是队列,下游消费者从队列获取消息无法申明独立身份。
一对一通信:基于消费匿名特点,下游消费者即使有多个,但都没有自己独立的身份,因此共享队列中的消息,每一条消息都只会被唯一一个消费者处理。因此点对点模型只能实现一对一通信。
发布订阅模型
发布订阅模型具有如下特点:
消费独立:相比队列模型的匿名消费方式,发布订阅模型中消费方都会具备的身份,一般叫做订阅组(订阅关系),不同订阅组之间相互独立不会相互影响。
一对多通信:基于独立身份的设计,同一个主题内的消息可以被多个订阅组处理,每个订阅组都可以拿到全量消息。因此发布订阅模型可以实现一对多通信。
传输模型对比
点对点模型和发布订阅模型各有优势,点对点模型更为简单,而发布订阅模型的扩展性更高。
云消息队列 RocketMQ 版 使用的传输模型为发布订阅模型,因此也具有发布订阅模型的特点。
云消息队列 Kafka
产品优势
针对开源的Apache Kafka提供全托管服务,解决开源产品的痛点。有了 云消息队列 Kafka 版 ,您只需专注于业务开发,无需部署运维。相较于开源Apache Kafka, 云消息队列 Kafka 版 成本更低、弹性更强、可靠性更高。
应用生态
具有丰富的应用生态,主要包括以下方面:
大数据领域:网站行为分析、日志聚合、应用监控、流式数据处理、在线和离线数据分析等领域。
数据集成:将消息导入MaxCompute、OSS、RDS、Hadoop、HBase等离线数据仓库。
数据处理集成:与StreamCompute、E-MapReduce、Spark、Storm等引擎集成。
产品架构
云消息队列 Kafka 版
系统架构
Producer
通过push模式向云消息队列 Kafka 版 的Kafka Broker发送消息。发送的消息可以是网站的页面访问、服务器日志,也可以是CPU和内存相关的系统资源信息。
Kafka Broker
用于存储消息的服务器。Kafka Broker支持水平扩展。Kafka Broker节点的数量越多,云消息队列 Kafka 版 集群的吞吐率越高。
Group
通过pull模式从云消息队列 Kafka 版 Broker订阅并消费消息。
Zookeeper
管理集群的配置、选举leader分区,并且在Group 发生变化时,进行负载均衡。
云消息队列 Kafka 版
云消息队列 Kafka 版 的发布/订阅模型
Group 和Topic的对应关系是N : N,即一个 Group 可以同时订阅多个Topic,一个Topic也可以被多个 Group 同时订阅。
虽然一个Topic可以被多个Group 同时订阅,但该Topic的消息只能被同一个 Group 内的任意一个Consumer消费。
产品优势
开箱即用
兼容开源:
云消息队列 Kafka 版 100%兼容开源Apache Kafka,您可以直接使用开源Apache Kafka客户端与 云消息队列 Kafka 版 通讯。 云消息队列 Kafka 版 目前支持0.10.x~2.6.x的开源版本。
无缝迁移:
云消息队列 Kafka 版 基于现有的开源Apache Kafka生态,您无需任何代码改造,即可迁移上云。
免运维、易观测
HouseKeeping(健康巡检组件):用于云消息队列 Kafka 版 核心链路的运行时巡检,每分钟会对集群做一次全面扫描诊断,并能针对不健康的状态进行告警。同时,每天还会为阿里云运维人员出具整体巡检报告,方便监控 云消息队列 Kafka 版 系统的健康状态。
业务监控与告警:每个Consumer Group都可以针对消息的堆积量情况设置监控与告警,帮助您及时发现问题。
OpenAPI:云消息队列 Kafka 版 为您提供了一整套完备的管控类OpenAPI,用于实现一系列的资源管理和运维功能。
丰富的数据生态
提供全托管、免运维的数据处理组件,支持灵活的Function函数编程,轻松灵活处理数据。
支持Connector连接海量云产品以及自建大数据生态产品,轻松实现数据集成和计算。
提供超大规格
深度优化内核,解决开源版本千级分区性能瓶颈,支持万级分区性能不受损。
支持秒级扩容。
支持最高2 GB流量写入。
高可用性
阿里云消息产品的研发与性能优化团队,进一步优化了开源产品的痛点,为您提供更优质的服务。
数据持久化:专业团队保障更高可用性,消息持久化落盘到消息队列,数据可靠性高,服务可用性高。
高吞吐能力:在海量消息堆积的情况下,始终能保持
云消息队列 Kafka 版 集群的高吞吐能力。
数万级Topic:支持数万级Topic高并发读写,始终保持
高SLA保障
支持灰度升级、升级/拖冷数据等极端场景写优化保障。
全自动巡检运维体系保障,服务可用性达99.9%,数据可靠性达99.999999%。
数据安全
提供鉴权与授权机制、用户分权等功能,提供企业级的安全防护。
权限管理:全面支持阿里云账号和RAM用户、黑白名单、STS等功能,实现阿里云账号和RAM用户以及企业间跨账号的授权服务。
访问安全:基于阿里云账号体系,利用SASL机制对用户身份进行认证,并利用SSL对通道进行加密传输,确保数据在传输过程中不被窃取或篡改,保证您的数据安全。
阿里云VPC:除公网访问方式外,云消息队列 Kafka 版 还支持专有网络VPC。您可以完全掌控自己的专有网络,例如选择IP地址范围、配置路由表和网关等,您可以在自己定义的专有网络中使用阿里云资源如云服务器、云数据库RDS版和负载均衡等。
开源引擎优化
相比于开源Apache Kafka,强大的处理引擎支持数万级Topic高并发读写、秒级弹缩和可靠云存储,提供一个超高性价比的选择;同时提供健康巡检组件、业务监控和告警功能,帮助您及时有效的发现并处理问题。
应用场景
网站活动跟踪
云消息队列 Kafka 版 的发布/订阅模型,您可以实时收集网站活动数据(例如注册、登录、充值、支付、购买),根据业务数据类型将消息发布到不同的Topic,然后利用订阅消息的实时投递,将消息流用于实时处理、实时监控或者加载到Hadoop、MaxCompute等离线数据仓库系统进行离线处理。
云消息队列 Kafka 版 用于网站活动跟踪具备以下优势:
高吞吐:网站用户产生的行为信息较为庞大,需要较高的吞吐量来支持。
弹性扩容:网站活动导致行为数据激增,云平台可以快速按需扩容。
大数据分析:可对接Storm、Spark等实时数据处理引擎,亦可对接Hadoop等离线数据仓库系统。
日志聚合
云消息队列 Kafka 版 在具备高性能的同时,可以实现更强的数据持久化以及更短的端到端响应时间。 云消息队列 Kafka 版 的这种特性决定它适合作为日志收集中心。 云消息队列 Kafka 版 忽略掉文件的细节,可以将多台主机或应用的日志数据抽象成一个个日志或事件的消息流,异步发送到 云消息队列 Kafka 版 集群,从而实现非常低的RT。 云消息队列 Kafka 版 客户端可批量提交消息和压缩消息,对生产者而言几乎感觉不到性能的开支。消费者可以使用Hadoop、MaxCompute等离线仓库存储和Strom、Spark等实时在线分析系统对日志进行统计分析。
云消息队列 Kafka 版 用于数据聚合具备以下优势:
应用与分析解耦:构建应用系统和分析系统的桥梁,并将它们之间的关联解耦。
高可扩展性:具有高可扩展性,即当数据量增加时可通过增加节点快速水平扩展。
在线或离线分析系统:支持实时在线分析系统和类似于Hadoop的离线分析系统。
数据处理
在很多领域,如股市走向分析、气象数据测控、网站用户行为分析,由于数据产生快、实时性强且量大,您很难统一采集这些数据并将其入库存储后再做处理,这便导致传统的数据处理架构不能满足需求。与传统架构不同,
云消息队列 Kafka 版 以及Storm、Samza、Spark等数据处理引擎的出现,就是为了更好地解决这类数据在处理过程中遇到的问题,数据处理模型能实现在数据流动的过程中对数据进行实时地捕捉和处理,并根据业务需求进行计算分析,最终把结果保存或者分发给需要的组件。
云消息队列 Kafka 版 用于数据处理具备以下优势:
流动的数据:在数据流动的过程中对数据进行实时地捕捉和处理,并根据业务需求进行计算分析。
高可扩展性:由于数据产生的速度快且数据量大,需要高可扩展性。
数据处理引擎:可对接开源Storm、Samza、Spark以及EMR、Blink、StreamCompute等阿里云产品。
数据中转枢纽
近10多年来,诸如KV存储(HBase)、搜索(Elasticsearch)、流式处理(Storm、Spark、Samza)、时序数据库(OpenTSDB)等专用系统应运而生。这些系统是为单一的目标而产生的,因其简单性使得在商业硬件上构建分布式系统变得更加容易且性价比更高。通常,同一份数据集需要被注入到多个专用系统内。例如,当应用日志用于离线日志分析时,搜索单个日志记录同样不可或缺,而构建各自独立的工作流来采集每种类型的数据再导入到各自的专用系统显然不切实际,利用云消息队列 Kafka 版 作为数据中转枢纽,同份数据可以被导入到不同专用系统中。
云消息队列 Kafka 版 作为数据中转枢纽具备以下优势:
高容量存储:能在商业硬件上存储高容量的数据,实现可横向扩展的分布式系统。
一对多消费模型:发布/订阅模型,支持同份数据集能同时被消费多次。
同时支持实时和批处理:支持本地数据持久化和Page Cache,在无性能损耗的情况下能同时传送消息到实时和批处理的消费者。
云消息队列 RabbitMQ
开源对比
从性能、稳定性、功能三方面对比云消息队列 RabbitMQ 版 与开源RabbitMQ, 云消息队列 RabbitMQ 版 更具优势。
产品功能
兼容开源RabbitMQ,提供完善的运维配套,支持多种消息类型。
使用限制
对集群、接口调用以及字符进行了限制,您在 云消息队列 RabbitMQ 版 时注意不要超过相应的限制值,以免程序出现异常。
产品优势
灵活易用
开箱即用
完全兼容标准协议,完全兼容RabbitMQ开源社区,快速迁移上云。
全托管服务
云消息队列 RabbitMQ 版 服务,即享有免部署免运维的云消息服务。依托于阿里云专业的自动化运维团队,核心链路秒级、分钟级进行多维度巡检,全面的健康诊断报告,针对不健康的状态进行告警与及时恢复,保证服务的可用性与业务的连续性。
高可用
提供明确SLA,保障多可用区高可用,即便整个机房不可用仍可正常提供消息服务。
集群分布式部署,服务节点无状态、无单点。即使单节点不可用,请求将Failover至其他节点保障消息服务正常提供。
功能增强
延时消息
支持延时消息,实现秒级精准,无先入先出限制。
简单易用,在代码上只需要设置一个参数即可完成,解决开源RabbitMQ无延时队列的痛点。
高精度支持,最短可精确到秒级,最长可持续1天。
高性能,性能与普通消息一致。
多副本数据冗余,确保消息可恢复。
消息重试
重试一次一分钟,最多16次重试。
超过最大重试次数后的消息进入死信队列,死信消息可查询、可导出。
死信Exchange
增强型死信Exchange,不仅支持被否定应答的消息,还支持重试失败的消息自动进入死信Exchange,确保消息不丢失。
超强性能
平台性能上限
支持百万级队列,横向扩容带来性能的线性增长,性能上无并发限制。
单队列扩容
解决RabbitMQ单队列性能瓶颈,支持单队列的横向扩展,性能上无并发限制。
弹性伸缩
可扩展能力强、性能线性增强,可根据业务需求弹性伸缩,对用户透明。
海量堆积
在海量消息堆积的情况下,始终保持高性能,不影响集群的正常服务。
消息的生产者与消费者实现隔离,满足生产者大量的并发,消费者稳定消费。
安全可靠
权限粒度
实例、Vhost、Queue以及Exchange细粒度权限控制,对每次消息请求进行安全访问控制。
主子账号
全面对接阿里云RAM主子账号、黑白名单、STS等功能。
加密传输
支持TLS传输加密协议。
应用场景
异步解耦
可用于单体应用被拆解为微服务后不同微服务间的通信。应用解耦的好处是不同应用的迭代不再相互依赖,而异步通信的好处是数据不再需要被立即处理。异步解耦能有效缩短数据链路长度,提高数据处理效率。
削峰填谷
大型活动带来较高流量脉冲时,没有做好相应保护容易导致系统超负荷甚至崩溃,限制太过则会导致请求大量失败而影响用户体验。
云消息队列 RabbitMQ 版 能做到削峰填谷。其高性能的消息处理能力可以承接流量脉冲而不被击垮,在确保系统可用性的同时,通过快速有效的请求响应技术提升用户体验。其海量消息堆积能力确保下游业务在安全水位内平滑稳定地运行,避免流量高峰的冲击。
分布式缓存同步
大量并发访问数据库会导致页面响应时间长。通过云消息队列 RabbitMQ 版 构建分布式缓存,支持实时通知数据变化,有效降低页面响应时间,满足对变更的大量访问需求。
云消息队列 MQTT
是阿里云推出的一款面向移动互联网以及物联网领域的轻量级消息中间件。如果说传统的消息队列中间件一般应用于微服务之间,那么适用于物联网的 云消息队列 MQTT 版 则实现了端与云之间的消息传递和真正意义上的万物互联。本文介绍 云消息队列 MQTT 版 的消息收发模型、产品优势和应用场景。
核心概念
Topic
:消息主题,一级消息类型,生产者向其发送消息。
生产者
:也称为消息发布者,负责生产并发送消息至Topic。
消费者
:也称为消息订阅者,负责从Topic接收并消费消息。
消息
:生产者向Topic发送并最终传送给消费者的数据。
规则
云消息队列 MQTT 版 与其他阿里云产品实现数据互通的资源。
消息收发模型
主要包含以下两种消息收发模型:
终端与云端服务交互模型
云消息队列 MQTT 版 将终端与云端连接起来,实现设备端和云端的双向通信。设备端通过 云消息队列 MQTT 版 可直接和云端的业务应用进行通信,也可和其他阿里云产品实现消息数据的跨产品互通。
该模型的典型应用场景为智能设备的状态数据上报或云端控制应用的指令下发。
终端与终端交互模型
该模型适用于移动端App或者设备之间的数据通信,典型场景是IM通信场景中两个用户直接聊天消息,以及智能设备场景中App端控制智能设备。在该模型中消息的生产者和消费者都是分布在终端设备,通过MQTT协议连接到云消息队列 MQTT 版 产品。
根据以上两种消息收发模型,可以将使用 云消息队列 MQTT 版 的开发人员分为终端和云端两大类。
产品优势
无缝迁移
兼容任何支持MQTT 3.1.1协议的SDK,支持WebSocket协议,覆盖绝大多数移动端开发平台及语言。
高性能
支撑千万级设备在线连接,消息百万级并发,万亿级流转,毫秒级推送;分布式架构设计,无单点瓶颈,各组件间均可无限水平扩展。
安全可靠
支持设备级权限控制,支持临时Token服务以及TLS 1.2版本的安全传输协议,确保用户数据安全可靠。
天然互通
云消息队列 MQTT 版 和云消息队列 RocketMQ 版的消息互通,从而实现设备端和云端的双向打通,更高效、更可靠。
应用场景
拥有多协议、多语言和多平台的支持能力,且广泛应用于移动互联网以及物联网领域,覆盖移动直播、车联网、金融支付、智能餐饮、即时聊天等多种应用场景。
消息服务 MNS
消息服务MNS (Message Service)是一种高效、可靠、安全、便捷和可弹性扩展的分布式消息服务。 消息服务MNS 能够帮助开发者在应用的分布式组件之间自由地传递数据、通知消息,从而构建松耦合系统。 消息服务MNS 支持队列模型和主题模型。
队列模型
队列模型提供高可靠、高并发的一对一消费模型,即队列中的每一条消息都只能够被某一个消费者消费。
队列就像一家旋转寿司店。寿司店中有多个寿司师傅(生产者)在制作精美的寿司,每一份寿司都是独特的,顾客(消费者)可以从传送带上拿取中意的寿司进行食用(消费)。
产品优势
简单易用
免运维,无需自行搭建消息服务。
接入方便,标准HTTP RESTful接口。
多种语言SDK支持,包括C++、Java、C#、Python、PHP、Go等,且不断丰富。
稳定可靠
消息三份拷贝,可靠性高。
服务可用性高。
特有机制确保Always Writable。
安全防护
多层次安全防护和防DDoS攻击。
多用户隔离机制,每个用户配备独立命名空间。
支持为不同的RAM用户授予不同的访问权限。
支持HTTPS、VPC访问。
大规模高扩展性能
队列数量以及队列存储容量可扩展性强。
服务规模自动扩展,对用户透明。
全球多地域提供服务。
快速稳定
快速直达,链接用户仅需3秒。
三网合一专属通道。
专线机房,支持大容量、高并发。
到达率高,与工信部携号转网平台实时互联。
电信级运维保障,实时监控自动切换。
贴心的技术服务
不断丰富的最佳实践案例分享。
7天24小时工单支持。
可定制化现场支持。