消息队列 RocketMQ:(一)概述

一、MQ 概述

1、MQ 简介

MQ,Message Queue,是一种提供 消息队列服务 的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。

2、MQ 用途

可以查看到很多的关于 MQ 用途的叙述,总结起来以下三点:

  1. 限流削峰
  2. 异步解耦
  3. 数据收集

限流削峰 :MQ可以将系统的 超量 请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求的丢失或系统被压垮。

异步解耦:上游系统对下游系统的调用若为同步调用,则会大大降低系统的吞吐量与并发度,且系统耦合度太高。而异步调用则会解决这些问题。所以两层之间若要实现由同步到异步的转化,一般性做法就是,在这两层间添加一个MQ层。

数据收集:分布式系统会产生海量级数据流,如:业务日志、监控数据、用户行为等。针对这些数据流进行实时或批量采集汇总,然后对这些数据流进行大数据分析

3、常见MQ

  • ActiveMQ
  • RabbitMQ
  • Kafka
  • RocketMQ

二、RocketMQ 概述

1、RocketMQ 简介

RocketMQ是一个统一消息引擎、轻量级数据处理平台。

RocketMQ是⼀款阿⾥巴巴开源的消息中间件。阿⾥巴巴向 Apache 软件基⾦会捐赠 RocketMQ,并孵化成 Apache 顶级项⽬。

2、RocketMQ 官网

官⽹地址:RocketMQ

三、RocketMQ 基本概念

1、消息(Message)

消息是指,消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题。

2、主题(Topic)

一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。

一个生产者可以同时发送多种Topic的消息;而一个消费者只订阅和消费一种Topic的消息。

3、标签(Tag)

为消息设置的标签,用于同一主题下区分不同类型的消息。来自同一业务单元的消息,可以根据不同业务目的在同一主题下设置不同标签。标签能够有效地保持代码的清晰度和连贯性,并优化RocketMQ提供的查询系统。消费者可以根据Tag实现对不同子主题的不同消费逻辑,实现更好的扩展性。

可以说 Topic 是消息一级分类,Tag 是消息二级分类。

4、队列(Queue)

存储消息的物理实体。一个Topic中可以包含多个Queue,每个Queue中存放的就是该Topic的消息。

一个Topic的Queue中的消息只能被一个消费者组中的一个消费者消费。
一个Queue中的消息不允许同一个消费者组中的多个消费者同时消费。

5、消息标识(MessageId/Key)

RocketMQ中每个消息拥有唯一的MessageId,且可以携带具有业务标识的Key,以方便对消息的查询。

不过需要注意的是,MessageId有两个:在生产者 send() 消息时会自动生成一个MessageId(msgId),当消息到达Broker后,Broker也会自动生成一个MessageId (offsetMsgId)。

msgId、offsetMsgId 与 key 都称为消息标识。


RocketMQ 参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值