首页 > 其他分享 >RocketMQ教程-(4)-领域模型概述

RocketMQ教程-(4)-领域模型概述

时间:2023-09-13 10:34:25浏览次数:48  
标签:订阅 教程 调用 模型 概述 消息 Apache RocketMQ


Apache RocketMQ 是一款典型的分布式架构下的中间件产品,使用异步通信方式和发布订阅的消息传输模型。通信方式和传输模型的具体说明,请参见下文通信方式介绍消息传输模型介绍。 Apache RocketMQ 产品具备异步通信的优势,系统拓扑简单、上下游耦合较弱,主要应用于异步解耦,流量削峰填谷等场景。

Apache RocketMQ领域模型

RocketMQ教程-(4)-领域模型概述_rocketmq

 

如上图所示,Apache RocketMQ 中消息的生命周期主要分为消息生产、消息存储、消息消费这三部分。

生产者生产消息并发送至 Apache RocketMQ 服务端,消息被存储在服务端的主题中,消费者通过订阅主题消费消息。

消息生产

生产者(Producer)

Apache RocketMQ 中用于产生消息的运行实体,一般集成于业务调用链路的上游。生产者是轻量级匿名无身份的。

消息存储

  • 主题(Topic)
    Apache RocketMQ 消息传输和存储的分组容器,主题内部由多个队列组成,消息的存储和水平扩展实际是通过主题内的队列实现的。
  • 队列(MessageQueue)
    Apache RocketMQ 消息传输和存储的实际单元容器,类比于其他消息队列中的分区。 Apache RocketMQ 通过流式特性的无限队列结构来存储消息,消息在队列内具备顺序性存储特征。
  • 消息(Message)
    Apache RocketMQ 的最小传输单元。消息具备不可变性,在初始化发送和完成存储后即不可变。

消息消费

  • 消费者分组(ConsumerGroup)
    Apache RocketMQ 发布订阅模型中定义的独立的消费身份分组,用于统一管理底层运行的多个消费者(Consumer)。同一个消费组的多个消费者必须保持消费逻辑和配置一致,共同分担该消费组订阅的消息,实现消费能力的水平扩展。
  • 消费者(Consumer)
    Apache RocketMQ 消费消息的运行实体,一般集成在业务调用链路的下游。消费者必须被指定到某一个消费组中。
  • 订阅关系(Subscription)
    Apache RocketMQ 发布订阅模型中消息过滤、重试、消费进度的规则配置。订阅关系以消费组粒度进行管理,消费组通过定义订阅关系控制指定消费组下的消费者如何实现消息过滤、消费重试及消费进度恢复等。
    Apache RocketMQ 的订阅关系除过滤表达式之外都是持久化的,即服务端重启或请求断开,订阅关系依然保留。

通信方式介绍

分布式系统架构思想下,将复杂系统拆分为多个独立的子模块,例如微服务模块。此时就需要考虑子模块间的远程通信,典型的通信模式分为以下两种,一种是同步的RPC远程调用;一种是基于中间件代理的异步通信方式。

同步RPC调用模型

RocketMQ教程-(4)-领域模型概述_rocketmq_02

同步RPC调用模型下,不同系统之间直接进行调用通信,
每个请求直接从调用方发送到被调用方,然后要求被调用方立即返回响应结果给调用方,
以确定本次调用结果是否成功。 
注意 此处的同步并不代表RPC的编程接口方式,RPC也可以有异步非阻塞调用的编程方式,
但本质上仍然是需要在指定时间内得到目标端的直接响应。

 异步通信模型 

RocketMQ教程-(4)-领域模型概述_发布订阅_03

 

异步消息通信模式下,各子系统之间无需强耦合直接连接,调用方只需要将请求转化成异步事件(消息)发送给中间代理,发送成功即可认为该异步链路调用完成,剩下的工作中间代理会负责将事件可靠通知到下游的调用系统,确保任务执行完成。该中间代理一般就是消息中间件。

异步通信的优势如下:

  • 系统拓扑简单。由于调用方和被调用方统一和中间代理通信,系统是星型结构,易于维护和管理。
  • 上下游耦合性弱。上下游系统之间弱耦合,结构更灵活,由中间代理负责缓冲和异步恢复。 上下游系统间可以独立升级和变更,不会互相影响。
  • 容量削峰填谷。基于消息的中间代理往往具备很强的流量缓冲和整形能力,业务流量高峰到来时不会击垮下游。

消息传输模型介绍

主流的消息中间件的传输模型主要为点对点模型和发布订阅模型。

点对点模型

RocketMQ教程-(4)-领域模型概述_发布订阅_04

点对点模型也叫队列模型,具有如下特点:

  • 消费匿名:消息上下游沟通的唯一的身份就是队列,下游消费者从队列获取消息无法申明独立身份。
  • 一对一通信:基于消费匿名特点,下游消费者即使有多个,但都没有自己独立的身份,因此共享队列中的消息,每一条消息都只会被唯一一个消费者处理。因此点对点模型只能实现一对一通信。

发布订阅模型

RocketMQ教程-(4)-领域模型概述_rocketmq_05

 

发布订阅模型具有如下特点:

  • 消费独立:相比队列模型的匿名消费方式,发布订阅模型中消费方都会具备的身份,一般叫做订阅组(订阅关系),不同订阅组之间相互独立不会相互影响。
  • 一对多通信:基于独立身份的设计,同一个主题内的消息可以被多个订阅组处理,每个订阅组都可以拿到全量消息。因此发布订阅模型可以实现一对多通信。

传输模型对比

点对点模型和发布订阅模型各有优势,点对点模型更为简单,而发布订阅模型的扩展性更高。 Apache RocketMQ 使用的传输模型为发布订阅模型,因此也具有发布订阅模型的特点。

 

 

标签:订阅,教程,调用,模型,概述,消息,Apache,RocketMQ
From: https://blog.51cto.com/ratelcloud/7452292

相关文章

  • RocketMQ教程-安装和配置
    Linux系统安装配置64位操作系统,推荐Linux/Unix/macOS64位JDK1.8+Maven3.0yum安装jdk8yum安装maven1.下载安装ApacheRocketMQRocketMQ的安装包分为两种,二进制包和源码包。点击这里 下载ApacheRocketMQ5.1.3的源码包。你也可以从这里 下载到二进制包。二进制包是已......
  • RocketMQ教程-(5)-功能特性-消息发送重试和流控机制
    本文为您介绍ApacheRocketMQ的消息发送重试机制和消息流控机制。背景信息消息发送重试ApacheRocketMQ的消息发送重试机制主要为您解答如下问题:部分节点异常是否影响消息发送?请求重试是否会阻塞业务调用?请求重试会带来什么不足?消息流控ApacheRocketMQ的流控机制主要为您解答......
  • RocketMQ教程-(4)-领域模型-消费者分组ConsumerGroup
    定义消费者分组是ApacheRocketMQ系统中承载多个消费行为一致的消费者的负载均衡分组。和消费者不同,消费者分组并不是运行实体,而是一个逻辑资源。在ApacheRocketMQ中,通过消费者分组内初始化多个消费者实现消费性能的水平扩展以及高可用容灾。在消费者分组中,统一定义以下消费行......
  • VUE2教程-基础-简介
    Vue.js是什么Vue(读音/vjuː/,类似于 view)是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue......
  • RabbitMQ、RocketMQ和Kafka的不同之处
    RabbitMQ、RocketMQ和Kafka是三种常见的消息队列系统,它们在设计和使用方面有一些不同之处:架构设计:RabbitMQ:RabbitMQ是一个基于AMQP(高级消息队列协议)的开源消息队列系统,采用的是传统的Broker架构模式,其中包括生产者、消费者和中间件(Broker)。RocketMQ:RocketMQ是一个基于分布式......
  • 运动控制卡使用教程
    1TB6600步进驱动器的使用 首先关注驱动器接口的原理图  再看控制卡的输出接口 因此这里用共阳极接法。 还有共阴极接法  参考:https://www.yii666.com/blog/328067.html  所谓“NPN输出”,简单说就是传感器未触发时,信号输出悬空或者上拉到电源正极,一......
  • 信息系统项目管理师教程(第四版) 第一章 信息化发展 学习笔记1-20230911
    第一章《信息化发展》 学习要点:1、信息的基本概念、信息的7个质量属性。2、信息系统的概念、特点或用途、抽象模型、信息系统生命周期。3、信息化、信息化系统。4、工业互联网(四大层级)、车联网(体系框架、链接方式、应用场景)。5、农业农村现代化、乡村振兴战略、两化融合与......
  • 01_计算机系统概述
    计算机系统概述操作系统的概念(定义)概念:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;他是计算机系统中最基本的系统软件。操作系统的层次结构:执行一个程序前需要将该程序放到内......
  • 《Python数据分析基础教程:NumPy学习指南.第2版》高清高质量PDF电子书+源码
    罕见的NumPy中文入门教程,Python数据分析首选从最基础的知识讲起,手把手带你进入大数据挖掘领域囊括大量具有启发性与实用价值的实战案例下载:https://pan.quark.cn/s/730b594117c0......
  • AI绘画:StableDiffusion实操教程-斗破苍穹-云韵-婚服(附高清图下载)
    大家好,我是小梦,最近一直研究AI绘画。不久前,我与大家分享了StableDiffusion的全面教程:“AI绘画:StableDiffusion终极宝典:从入门到精通”然而,仍有些读者提出,虽然他们已经成功地安装了此工具,但生成的作品与我展示的相差较大。那么,如何缩小这之间的质感差距呢?关键在于选择合适的......