开发者学堂课程【RocketMQ 消息集成:多类型业务消息专题:快速学习多类型业务消息专题-普通消息】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1161/detail/17322
多类型业务消息专题-普通消息
内容介绍:
二、方向探讨
三、消息队列
四、原理实践
五、产品预告
一、背景介绍
在介绍 RocketMQ之前,要对比业务集成和数据集成。
首先业务消息是以应用为中心的,在做业务的核心架构的很多时候,都面向上层需求去完成业务逻辑的设计。比如电商交易会上更多的是关注用户订单的流转过程。此时通过微服务的拆分,可能在整个链路中会拆成很多环节,不同应用之间通过消息去集成的时候,更多的关注整个业务逻辑是否为正处理。
数据集成是以数据为中心,更多关注于业务集成所产生的数据的价值分析。不关心数据的来源,只关心数据本身的属性和数据之间的关系。
第二点,链路的多样性在业务集成里,随着企业的业务逻辑或者是业务布局的拓宽和复杂度的提升,调用和被调用方之间的耦核心或者是链路的拓扑非常复杂。此时可能经常出现消息上游和消息下游的连接,可能某服务器既是发送方,也是消费方。既是某消费链路的下游,也是另外链路的上游,可能会非常复杂。
同时在数据集成的场景里面,可能关注亮度,更多的是关注数据的多样性。在做数据集成分析的时候,更多的是从各种异构的数据源里面去提取、汇聚这些数据。比如从日志、买点以及数据库或者是三方的一些系统接口的调用情况,把这些业务的系统和数据聚合,清洗之后去做这种结构化的分析或者是报表。更多关注数据的易变性多样性。
同时第三点也是业务集成和数据建设对 SAR 或者服务质量的重点差异。业务阶层里面更多的是在线的逻辑,比如在业务集团领域的服务之间的调用,无论是同步调用还是异步调用,都对调用和非调用之间的同步机制有一定的要求。举个例子,订单的处理必须要在毫秒级完成,否则用户的体验会非常的差。
然后对延迟非常敏感。但是在数据集成里面,更多的可能一般都是一种近实时甚至是离线。比如自动式可能是通过一些 P 或者实时流场景去爬取数据之后,分析它的链路对于用户来并没有那么的可见或者对 C 端的用户来不是很直接,这也是两者的数据集成和业务集成的侧重点的差异。
二、方向探讨
RocketMQ 作为业务集成的授权化,那看到底是首先就是业务集成
消息队列是企业业务知识的主要模式,这也就是一种业务模式,那业务模式提供可靠可观测的通讯能力。
非常复杂的业务集成的链路使用消息举例:
应用A到下层的应用 B 的单链路,通过消息之后,通过方案初始化或者是结构化消息事件发送到消息的通道里面。通道可能就是各种消息产品。然后再通过 Router , 过滤分发的组件,然后去匹配到下游做消息的推送处理。同时还会有整个链路,一些可观测、监控的体系去支撑整个链路。
业务集成消息核心能力第一点是对消息类型或者支持传输的方式有多样化的诉求。很多时候,随着链路发展,会衍生出一种延时投递定时消息。还有一些消息处理和业务逻辑处理一致性的保障。同时对于某些场景里面不同的两个事件之间消息事件之间要有顺序的先后性,
比如订单的支付和发货类似的逻辑,那如果顺序混乱,下游的业务就无法正常开展。
对于传输类型、销售类型的这种诉求消息系统不能处理,业务系统处理,成本较高。
第二点,丰富的路由分发能力,就像图示开关,很多时候不都是点对点的风险,上游和下游做深度的解耦。比如上游发完的数据到管道里面去,下游关心的人来订阅,不关心的人可以不处理。此时就需要系统提供一种丰富的玻璃体。不仅仅是消息的主题,更多时候可能是基于消息的属性去做一些非常复杂的计算。比如正向匹配甚至反向匹配,或者包含关系,或者排他关系,或者是一些判断条件。
那第三点就是对消费方式的诉求,通过消息集成的时候,上下游去取可能会有多样化的诉求。最简单的一种场景是下游通过被动的推送,也就是事件通知的方式去处理,数据到达之后推送,然后去处理。他的弊端比如速率的匹配或者是只能同步处理过程,不能满足多样化消费的需求。
第四点也是业务消息领域集群里面的非常重要的。业务领域的集成是偏向于比如每个公司或者行业的业务逻辑,很多时候传输的消息都是订单、支付之类的信息,是非常高价值的这种信号和实践。那时候要求整个链路的可观测的体系非常完善。也就是能够很好的诊断出消息的异常。比如一条消息没有正确处理,问题应该怎么处理。
如果不能及时处理,那对于最终的服务客户体验就非常的差。
所以在业务集成领域,可观测的体系就是件就是 message 、trace 和问题。事件、轨迹和指标的信息透出和分析是非常重要的。那如果可
三、消息队列
阿帕奇最早诞生在阿里巴巴的电商的系统的内部,现在是阿帕奇社区非常活跃的键。消息队列 RocketMQ 是业务消息集成的设计方案原因是对于刚才的模式,核心能力提供的非常丰富的功能特性,包括消息类型,订阅模式,同时还能满足刚才的业务高性能需求,以及刚才运维的整个体系的支撑。
RocketMQ 提供非常多的消息类型,包括普通消息、定时消息、顺序消息和事物消息多种类型,方便的业务集成方进行集成模式的开发。通过开箱即用的功能的业务,不需要再去封装。