首页 > 其他分享 >初识RocketMQ基础概念(一)

初识RocketMQ基础概念(一)

时间:2022-11-15 18:55:17浏览次数:48  
标签:消费 持久 Producer 概念 初识 消息 Consumer RocketMQ

20年入职ryx公司后,刚好接触到一个线上问题,遂开了一个研究课题,一场针对Apache RocketMQ的无烟战争正式打开。

一开始刚接触这玩意,只是通过百度搜索简单了解下,后来发现很多文章复制粘贴严重。

于是就想自己看看源代码,前人摘树,后人乘凉。现在22年了,很多都又忘记了,待我慢慢补充。

先简单介绍一些基本概念

mq的使用场景:主要针对请求的削峰,解耦和异步处理。

mq的本质:

  • 一种具备接受请求、保存数据、发送数据等功能的网络应用。
  • 利用高效可靠的消息传递机制进行平台无关的数据交流; 并基于数据通信来进行分布式系统的集成; 
  • 通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。 和一般网络应用程序区别于它主要负责数据的接收和传递,所以性能高于普通程序。 

mq的核心组成:

  • 协议:网络协议(OpenWire、AMQP、MQTT、kafka、OpenMeaasge等)
  • 持久化机制:存入磁盘而非内存,不能随服务重启而丢失。
  • 消息分发机制:消息服务器把消息分发给具体的某个消费者的策略。消息分发,重试。
  • 高可用设计:针对服务可用性的设计。集群。
  • 高可靠设计:指系统无障碍的持续允许。譬如:一个系统从不崩溃不报错,或者异常几率低

协议三要素:

  • 语法:即数据与控制信息的结构或格式 
  • 语义:即需要发出何种控制信息,完成何种动作以及作出什么反应 
  • 时序(同步):即事件实现顺序的详细说明 

常见的网络协议为:

  •  OpenWire:ActiveMQ专属
  • AMQP:ActiveMQ,RabbitMQ(事务、持久化支持)
  • MQTT:物联网应用广泛(轻量、结构简单、传输快、无事务持久化支持,低带宽,网络不稳定的场景)
  • kafka:基于TCP的二进制协议,结构简单,无事务支持,有持久化设计
  • OpenMeaasge:Apache RocketMQ实现,结构简单,解析快,事务支持,持久化设计 

   

  • Producer:消息生产者,负责产生消息 
  • Consumer :消息消费者,负责消费消息,一般由后台系统异步消费 
  • Push Consumer :封装消息拉取,消费进程和内部 
  • Pull Consumer :主动拉取消息 
  • Producer Group :一类Producer的集合名称,通常发送一类消息,发送逻辑一致 
  • Consumer Group :一类Consumer的集合名称,通常消费一类消息,消费逻辑一致 
  • Broker :消息中转角色,负责存储消息,转发消息,即Rocketmq Server 
  • Topic :消息主题,在服务端配置,消费者按照主题订阅消息 
  • Tag :消息分类,用于对消息进行过滤,在主题下对消息进行二次划分 同一业务的不同目的可以用同样的topic不同tag来区分 
  • Message :在生产者和消费者之间传输的消息体,一个message必须属于某个topic 
  • Namesrv :一个无状态的名称服务,可以集群部署,每个启动的broker都会去注册, 主要是处理注册和接收客户端的路由请求并返回路由信息 
  • OffSet :偏移量,消费者拉取消息时需要知道上次消费位点,即从哪开始消费 
  • Partition :分区,Topic的物理分组,一个Topic可以有多个分区,每个分区是一个有序队列。 分区里的每个消息都会分配一个有序ID,即偏移量 
  • Key :表示消息唯一,方便定位消息,查询问题

 

标签:消费,持久,Producer,概念,初识,消息,Consumer,RocketMQ
From: https://www.cnblogs.com/justtodo/p/16893517.html

相关文章

  • RocketMQ 5.0 API 与 SDK 的演进
    作者:艾阳坤RocketMQ5.0SDK采用了全新的API,使用gRPC作为通信层的实现,并在可观测性上做了很大幅度的提升。全新统一的API此处的API并不单单只是接口上的定义,同......
  • 初识Linux(九)------ 学习Shell Scripts
    基本上,shellscript有点像是早期的批处理文件,亦即是将一些指令汇整起来一次执行,但是Shellscript拥有更强大的功能,那就是他可以进行类似程序(program)的编写,并且不......
  • ECharts基础概念
    简要介绍下ECharts中的基础概念:1、echarts实例:一个网页中可以创建多个echarts实例。每个echarts实例中可以创建多个图表和坐标系等。dom节点作为echarts的渲染容器,......
  • 1-0 K8S基础概念
    K8S基础概念1、NodeNode作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod。Node上运行着Kubernetes的Kubelet、kube-proxy服务进程,......
  • 数字IC设计基本概念之多时钟设计
    当设计中使用了多个时钟时,这些时钟域之间的关系可能是synchronous、asynchronous或者exclusive的。如下所示:Synchronous:Asynchronous:Exclusive:需要人为地指定设计中......
  • spark (四) RDD概念
    目录1.RDD基本概念1.1弹性1.2分布式1.3数据集1.4数据抽象1.5不可变1.6可分区、并行计算2.WordCount为例,看RDD特性3.RDD的五大属性3.1分区列表3.2计算逻辑compu......
  • 线程概念学习笔记
    1.进程和线程1.1什么叫做线程定义:线程是CPU的基本调度单位,每个线程执行的都是进程代码的某个片段。实例演示:用活动监视器的CPU栏目看java进程的线程数的变化左边进......
  • 让数据流动起来,RocketMQ Connect 技术架构解析
    作者:周波WhyRocketMQConnect在业务系统,或者大数据系统中不同数据源之间的数据同步是十分常见的,传统的点对点的数据同步工具,在面临越来越多的数据源点对点的数据同步会......
  • rocketMq springboot2 发送广播消息
    广播消息:一个点发送,所有有监听订阅的程序都能收到消息。应用场景:一个配置更新了,其他点都需要知道配置更新需加载。 mq创建主要是创建组时与队列有点区别mqadminup......
  • rocketMq springboot2 发送有序消息
    有序消息:所有信息往mq中,在broker.conf配置文件中指定产生队列数量。如果是普通队列时,所有消息,会分发到默认队列的各个队列中。是无序的。有序则是,所有消息发送,都指定一个......