rocketMQ的消息介绍、发送方式和消费方式
rocketMQ中消息有以下几种
- 普通消息:消息队列中没有特性的消息
- 顺序消息:严格按照顺序发布和消费的消息,先发布的消息一定会先被消费,可以分为
- 全局顺序消息:所有消息严格按照先入先出的顺序来发布和消费
- 分区顺序消息:消息根据sharding key进行区块分区,同一分区的消息严格按照先入先出的顺序进行发布和消费
- 定时消息:发送消息时可以不立即投递,而是指定一个将来的时间点进行投递
- 延时消息:发送消息时可以不立即投递,而是指定一个延迟时间段后才进行投递
- 事务消息:提供分布式事务功能、达到分布式事务的最终一致性
- 半事务消息:已发送到消息服务端,但是未收到发送方提交或回滚确认的消息,状态是“暂不能投递”,不会被投递给消费者。
- 消息回查:消息服务端扫描发现某消息长时间处于“半事务消息”状态时,主动向消息发送者查询消息最终状态的过程
一、消息发送方式
小修发送方式有三种
- 同步发送
- 异步发送
- 单向发送
1.1 同步发送
原理:同步发送是指消息发送方发出一条消息后,会在收到服务端同步响应之后才发下一条消息的通讯方式。
应用场景:此种方式应用场景非常广泛,例如重要通知邮件、报名短信通知、营销短信系统等。
1.2 异步发送
原理
异步发送是指发送方发出一条消息后,不等服务端返回响应,接着发送下一条消息的通讯方式。发送消息时需要实现异步发送回调接口(SendCallback)。消息发送方在发送了一条消息后,不需要等待服务端响应即可发送第二条消息。发送方通过回调接口接收服务端响应,并处理响应结果。
应用场景
异步发送一般用于链路耗时较长,对响应时间较为敏感的业务场景,例如,您视频上传后通知启动转码服务,转码完成后通知推送转码结果等。
1.3 单向发送
原理
发送方只负责发送消息,不等待服务端返回响应且没有回调函数触发,即只发送请求不等待应答。此方式发送消息的过程耗时非常短,一般在微秒级别。
应用场景
适用于某些耗时非常短,但对可靠性要求并不高的场景,例如日志收集。
1.4 三种发送方式对比
发送方式 | 发送TPS | 发送结果反馈 | 可靠性 |
同步发送 | 快 | 有 | 不丢失 |
异步发送 | 快 | 有 | 不丢失 |
单向发送 | 最快 | 无 | 可能丢失 |
1.5 不同消息适用的发送方式
顺序消息必须保证按照顺序发送,所以只能使用同步发送。
消息类型 | 是否支持可靠的同步发送 | 是否支持可靠的异步发送 | 是否支持单向发送 |
无序消息(普通、事务、定时、延时) | 是 | 是 | 是 |
分区顺序消息 | 是 | 否 | 否 |
全局顺序消息 | 是 | 否 | 否 |
二、消息对比
顺序消息必须保证按照顺序发送和消费,所以不支持定时、延时、事务。
消息类型 | 是否支持事务消息 | 是否支持定时和延时消息 | 性能 |
无序消息(普通、事务、定时、延时) | 是 | 是 | 最高 |
分区顺序消息 | 否 | 否 | 高 |
全局顺序消息 | 否 | 否 | 一般 |
三、消费模式
- 集群消费:任何一条消息只需要被消费者集群中任意一个消费者处理
- 广播消费:每条消息被推送给消费者集群中的所有注册消费者,保证消息被每个消费者至少消费一次
消息类型 | 是否支持顺序消息 | 消费进度维护处 |
集群消费 | 是 | 服务端维护 |
广播消费 | 否 | 客户端维护 |
以上
rocketMQ的消息介绍、发送方式和消费方式相关推荐
- RocketMQ常见问题-消息重复消费和消息重复的问题
RocketMQ不解决消息重复问题,RocketMQ不解决消息重复问题,RocketMQ不解决消息重复问题,重要的事情说三遍. 基本上说我很讨厌有人问这个问题,问这个问题首先你对消息的生命周期缺乏理解 ...
- rocketmq广播消息为什么不能重试_几分钟带你看懂“消息队列和RocketMQ”的入门总结
消息队列扫盲 消息队列顾名思义就是存放消息的队列,队列我就不解释了,别告诉我你连队列都不知道似啥吧? 所以问题并不是消息队列是什么,而是 消息队列为什么会出现?消息队列能用来干什么?用它来干这些事会带 ...
- RocketMQ(九)RocketMQ顺序消息
目录 一.什么是顺序消息? 二.顺序消息的原理 三.全局顺序消息 四.局部顺序消息 五.顺序消息缺陷 一.什么是顺序消息? 消息有序指的是,消费者端消费消息时,需按照消息的发送顺序来消费,即先发送的消 ...
- rocketmq框架详细介绍
文章目录 消息队列 应用场景 rocketmq 为什么选择RocketMQ消息队列 RocketMQ所拥有的功能 rocketmq应用场景 应用解耦 流量削峰 数据分发 异步处理 日志处理 顺序消息 ...
- RocketMQ 实战 消息发送样例
消息发送样例 导入MQ客户端依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId& ...
- RocketMQ源码分析之RocketMQ事务消息实现原理上篇(二阶段提交)
在阅读本文前,若您对RocketMQ技术感兴趣,请加入 RocketMQ技术交流群 根据上文的描述,发送事务消息的入口为: TransactionMQProducer#sendMessageInTra ...
- RocketMQ——顺序消息
消息有序指的是可以按照消息的发送顺序来消费. RocketMQ可以严格的保证消息有序.但这个顺序,不是全局顺序,只是分区(queue)顺序.要全局顺序只能一个分区. 之所以出现你这个场景看起来不是顺序 ...
- RocketMQ如何实现消息轨迹:消息何时发送的?耗时多久?谁消费的?存在哪个broker了?
文章目录 一.前言 二.消息轨迹 1.消息轨迹的引入目的 2.如何使用消息轨迹 1)使用案例 2)消息轨迹内容 3) RocketMQ-Console中查看消息轨迹 3.消息轨迹实现原理 1)消息轨迹 ...
- RocketMQ(十三)——实战-普通消息的发送与消费
文章目录 普通消息 消息发送 同步发送消息 异步发送消息 单向发送消息 代码示例 导入RocketMQ的依赖 定义同步消息的发送者 定义异步消息的发送者 定义消费者 普通消息 消息发送 同步发送消息 ...
最新文章
- XML和JSON数据格式对比
- 龙蜥降世,神龙升级,阿里云投入 20 亿发力操作系统
- java 7 g1_java7中G1垃圾收集器使用和流程总结
- 你真的认识 “ 数据中心网络 ” 吗?
- CentOS7安装配置redis5.0.5
- 解决针对ubuntu11.04安装中文包后不能正常查看或使用pdf和Archiver的问题
- API系统1.2lite模板管理测试版发布
- python小括号( )与中括号 [ ]
- 现在需要在input框输入年月yyyymm的正则_税务师报名时间、考试报名官网2021年安排_税务师...
- 网络编程 : 基于UDP的网络群聊聊天室
- 全!Web渗透测试:信息收集篇
- 【搞定GTD】用iPhone打造GTD实践1年后的心得体会
- 经济应用文写作【7】
- 2018金山wps暑期招聘服务器端笔试题(第二批)
- RST 和 Markdown
- 移动电子商务:五个技术标准与Trustonic TEE解决方案【转】
- 不朽凡人 正文 第四百八十九章 三个条件
- Qwt开发教程(一)—配置及安装Qwt(最全、最详细)#F0220
- 计算机二级考试公共基础知识——第一章计算机系统
- 高侨名人冒险岛java,高桥名人冒险岛无敌版
热门文章
- Base 64 图片解码
- python绘制动态k线及均线,python : pyecharts 1.1.0 画K线图
- XMind2020安装教程
- Make 命令零基础教程
- 视频库:人工智能开发_人工智能工程师_AI人工智能
- Android开发之视频播放器
- 我来到广东第一“鬼城”,打算买房安家
- 歌曲转调之后和弦如何转换
- matlab 单位脉冲响应,滤波器系数、单位脉冲响应、频率响应等概念笔记
- 浙江大学计算机科学与技术学院导师,浙江大学计算机科学与技术学院导师介绍:杨莹春...