前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RocketMq简介以及名词概念

RocketMq简介以及名词概念

作者头像
木字楠
发布2023-10-17 10:46:31
1080
发布2023-10-17 10:46:31
举报
文章被收录于专栏:木字楠の空间木字楠の空间
在这里插入图片描述
在这里插入图片描述

🎶 文章简介:RocketMq简介以及名词概念 💡 创作目的:简单介绍RocketMq的信息以及名词概念 ☀️ 今日天气: 📝 每日一言:如果你执意追逐我的幻影,迟早会被真正的我打败。 --棋魂


😺 1、RocketMq介绍

RocketMq作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。

😸 1.1、RocketMq的特点

支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型。

在一个队列中可靠的先进先出(FIFO)和严格的顺序传递。(RocketMq可以严格的保证消息的顺序)

支持推(Push) 和 拉(pull)两种消息模式。

代码语言:javascript
复制
拉(pull)就是消费者拉去MQ中拉取消息,而push是MQ给消费者推送消息。

单一队列百万消息的堆积能力(RocketMq提供亿级消息的堆积能力,而重点是在亿级消息堆积之后,依然保持写入低延迟)

支持多种消息队列,如JMS、MQTT等等…

分布式高可用架构,满足至少一次消息传递语句。

提供Docker镜像用于隔离测试和云集群部署。

提供配制、指标和监控等丰富的控制。

😹 1.2、RocketMq的优势所在

目前主流的 MQ 主要是 RocketMQ、ActiveMq、kafka、RabbitMQ,其主要优势有:

  • 支持事务型消息(消息发送和 DB 操作保持两方的最终一致性,RabbitMQ 和 Kafka 不支持)
  • 支持结合 RocketMQ 的多个系统之间数据最终一致性(多方事务,二方事务是前提)
  • 支持 18 个级别的延迟消息(Kafka 不支持)
  • 支持指定次数和时间间隔的失败消息重发(Kafka 不支持,RabbitMQ 需要手动确认)
  • 支持 Consumer 端 Tag 过滤,减少不必要的网络传输(即过滤由MQ完成,而不是由消费者完成。RabbitMQ 和 Kafka 不支持)
  • 支持重复消费(RabbitMQ 不支持,Kafka 支持)

😼 2、Rocket名词概念

还有一些名词概念如:**主题(Topic),分组(Group),消息队列(Message Queue),偏移量(Offset),标签(Tag)**等

image-20220620161432043
image-20220620161432043

😽 2.1、Topic 主题

我们可以通过topic区标识一类消息,可以将消息分为不同主题。例如Topic A、Tocpic B等。在实际应用中可能会分为家电、衣物、视频等不同主题进行区分。

我们的Topic一般来说会挂载多个queue队列,这样在某种程度上可以提高我们消息队列的并发度。

读/写队列问题: 从物理上来讲,读写队列是同一个队列。

例如:创建Topic时,创建的写队列数量为8,而读队列的数量为4。此时系统会创建8个Queue,分别是0,1,2,3,4,5,6,7。Producer会将消息写入到这8个队列,但Consumer只会消费0,1,2,3这四个队列中的消息,而4,5,6,7中的消息是不会被消费到的。

例如:创建Topic时,创建的写队列数量为4,而读队列的数量为8。此时系统会创建8个Queue,分别是0,1,2,3,4,5,6,7。Producer会将消息写入到这0,1,2,3 这几个队列,但Consumer只会消费0,1,2,3,4,5,6,7中的消息是进行消费,但是4,5,6,7中是没有消息可以消费的。 这两种设计方式都是有问题的,但是这样设计的好处是什么呢? 其实这样设计的目的是为了方便Topic的queue缩容。

Perm: 用于设置当前创建的Topic的操作权限:2表示只读,4表示只写,6表示读写

😻 2.2、Group 分组

生产者分组:标识同一类的消息的发送,生产者中的消息分组一般作用于事务消息。

消费者分组:是对一类消息的消费,消费的逻辑大致上是一致的。

代码语言:javascript
复制
eg:
消费者分组:  		   物流组                                  通知组
				 物流的业务逻辑进行消费				    消息通知的业务逻辑进行消费

😾 2.3、Message Queue消息队列

Message Queue 即是 主题被划分为一个或多个子主题,而一条消息必须有一个主题(Topic),主题可以看做你要邮寄的地址,一条消息也可以拥有一个可选的Tag标签和额外的键值对。我们的生产者发布消息之后,会被Topic会分发到队列之中,而我们的消费者组就是区订阅消费指定的队列中的消息。

image-20220620164047772
image-20220620164047772

😿 2.4、Offset 偏移量

一般来说是指MessageQueue中的偏移量,没有特别指出的话就是指我们消费者消费的数量。

🙀 2.5、Tag 标签

Tag标签相当于是子主题,他是消息的第二级别类型,用于为用户提供额外的灵活性。如果Topic比作是衣服,那么Tag就可以看做是风衣、短袖、短裤等等…

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 😺 1、RocketMq介绍
    • 😸 1.1、RocketMq的特点
      • 😹 1.2、RocketMq的优势所在
      • 😼 2、Rocket名词概念
        • 😽 2.1、Topic 主题
          • 😻 2.2、Group 分组
            • 😾 2.3、Message Queue消息队列
              • 😿 2.4、Offset 偏移量
                • 🙀 2.5、Tag 标签
                相关产品与服务
                消息队列
                腾讯云消息队列 TDMQ 是分布式架构中的重要组件,提供异步通信的基础能力,通过应用解耦降低系统复杂度,提升系统可用性和可扩展性。TDMQ 产品系列提供丰富的产品形态,包含 CKafka、RocketMQ、RabbitMQ、Pulsar、CMQ 五大产品,覆盖在线和离线场景,满足金融、互联网、教育、物流、能源等不同行业和场景的需求。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档