详细讲解RocketMQ!包含多个知识点!通俗易懂!(顺序、延时消息、死信队列、消费幂、消息过滤)

RocketMQ篇二(消息重试、死信队列、死信消息、消息幂等、延迟消息、顺序消息、消息过滤、回溯消费、事务消息) 1. 消息重试 1.1 如何让消息进行重试 1.2 重试消息如何处理 2. 死信队列、死信消息 3. 消息去重/消息幂等(防止消息重复消费) 4. 定时消息(延迟消息) 5. 顺序消息 6. 消息过滤 7. 回溯消费 8. 事务消息 阅读详情

一、顺序消息

顺序消息(FIFO 消息)是消息队列 RocketMQ 提供的一种严格按照顺序来发布和消费的消息。顺序发布和顺序消费是指对于指定的一个 Topic,生 产者按照一定的先后顺序发布消息;消费者按照既定的先后顺序订阅消息,即先发布的消息一定会先被客户端接收到。

顺序消息分为全局顺序消息和分区顺序消息。

1.1、全局顺序消息

RocketMQ 在默认情况下不保证顺序,要保证全局顺序,需要把 Topic 的读写队列数设置为 1,然后生产者和消费者的并发设置也是 1。所以这样的话 高并发,高吞吐量的功能完全用不上。
在这里插入图片描述

1.1.1、适用场景

适用于性能要求不高,所有的消息严格按照 FIFO 原则来发布和消费的场景。

1.1.2、示例

要确保全局顺序消息,需要先把 Topic 的读写队列数设置为 1,然后生产者和消费者的并发设置也是 1。
mqadmin update Topic -t AllOrder -c DefaultCluster -r 1 -w 1 -n 127.0.0.1:9876
在证券处理中,以人民币兑换美元为 Topic,在价格相同的情况下,先出价者优先处理,则可以按照 FIFO 的方式发布和消费全局顺序消息。

1.2、部分顺序消息

对于指定的一个 Topic,所有消息根据 Sharding Key 进行区块分区。同一个分区内的消息按照严格的 FIFO 顺序进行发布和消费。Sharding Key 是顺 序消息中用来区分不同分区的关键字段,和普通消息的 Key 是完全不同的概念。

二、延时消息

2.1、概念介绍

延时消息:Producer 将消息发送到消息队列 RocketMQ 服务端,但并不期望这条消息立马投递,而是延迟一定时间后才投递到 Consumer 进行消费, 该消息即延时消息。

2.2、适用场景

消息生产和消费有时间窗口要求:比如在电商交易中超时未支付关闭订单的场景,在订单创建时会发送一条延时消息。这条消息将会在 30 分钟以 后投递给消费者,消费者收到此消息后需要判断对应的订单是否已完成支付。 如支付未完成,则关闭订单。如已完成支付则忽略。

2.3、使用方式

Apache RocketMQ 目前只支持固定精度的定时消息,因为如果要支持任意的时间精度,在 Broker 层面,必须要做消息排序,如果再涉及到持久化, 那么消息排序要不可避免的产生巨大性能开销。(阿里云 RocketMQ 提供了任意时刻的定时消息功能,Apache 的 RocketMQ 并没有,阿里并没有开源)
发送延时消息时需要设定一个延时时间长度,消息将从当前发送时间点开始延迟固定时间之后才开始投递。
延迟消息是根据延迟队列的 level 来的,延迟队列默认是
** msg.setDelayTimeLevel(5)代表延迟一分钟
** "1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h"

是这 18 个等级(秒(s)、分(m)、

RocketMQ笔记(尚硅谷教程) 1.MQ简述 MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消费、存储、消费全过程API的软件系统,消息即数据,一般消息的体量不会很大。 2.MQ的用途 2.1 限流削峰 MQ可以京系统的超量请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求的丢失或系统被压垮 2.2 异步解耦 上游系统对下游系统的调用若为同步调用,则会大大降低系统的吞吐量与并发量,且系统耦合度太高,而异步调用则会解决这些问题,随意两层之间若要实现由同步到异步的转化,一般的做法就是 阅读详情

相关推荐

12.RocketMQ之消息重试机制+死信队列

一、消息的消费重试机制 Producer对发送失败的消息进行重新发送的机制。 采用同步或异步会重试,oneway消息发送方式发送失败没有重试机制。 消息发送重试三种策略: 同步发送失败策略 对于普通消息,消息发送默认采用round-robin策略来选择所发送到的队列。如果发送失败,默认重试2次,但在重试时是不会选择上次发送失败的Broker,而是选择其他的Broker。 同时,Broker还具有失败隔离功能,使Producer尽量选择未发生过发送失败的Broker作为目标Broker。 如果超过重试次数,

kk_lina的博客 3383

深入RocketMQ-消息原理篇

SCHEDULE_TOPIC_XXXX 是 RocketMQ 一个系统类型的 Topic,用于标识延时消息。这个 Topic 有 18 个队列,分别唯一对应着 RocketMQ 的 18 个延时等级,对应关系为:queueId = delayTimeLevel – 1。这是 Broker 中的一个延时服务,专门消费 Topic 为 SCHEDULE_TOPIC_XXXX 的延时消息,并将其投递到目标 Topic 中。

Linuxhus的博客 2016

RocketMQ从从入门到精通

这种方式风险较大,一旦Broker重启或者宕机时,会导致整个服务不可用。不建议线上环境使用,可以用于本地测试。

程序员进阶之路 1699

【Audio】基于STM32 I2S移植WM8978 Audio Codec驱动

1. WM8978简介 WM8978是一款低功耗,高质量的立体声编解码器,专为便携式应用,如数码相机或数码摄像机等。 该芯片集成了立体声差分麦克风的前置放大器,并包括扬声器、耳机和差分或立体声线输出的驱动器。外部组件要求减少,因为不需要单独的麦克风或耳机放大器。 WM8978的功能框图如下所示: 2. WM8978硬件连接 使用STM32F429+WM8978硬件平台,通过I2S接口来读写音频数据,I2C接口发送写命令控制WM8978相关功能。 STM32F429与WM8978的引脚连接如下:

ZHONGCAI0901的博客 1万+

【锂离子电池力学耦合及相场法模拟技术与应用】

8. 电化学仿真软件的使用与案例分析 (1) 各向异性纳米线锂化应力分析(实例讲解1) (2) 化学反应及死锂现象研究(案例分析2)(3) 锂化循环损伤计算(案例分析3)6. 4. 电池材料的力学与电化学耦合性能分析(1) 耦合效应对电池性能的影响(2) 耦合模型的验证与应。5. 5. 电池颗粒、极片、电芯尺度力-电-化-热多场耦合模型概述力学-7. 颗粒尺度耦合模型在电池失效分析中的应用。2. 2. 电池电极材料的分类与特性。5. (2) 耦合模型的验证与应用。电化学耦合模型与仿真。

weixin_51101456的博客 522

论文阅读笔记--Grid Anchor based Image Cropping: A New Benchmark and An Efficient Model

基于网格锚的图片裁剪:一种新的标准和高效的模型摘要1.介绍2.相关工作2.1 图像裁剪数据集和评估指标 摘要 图像裁剪的目的是通过去除图像中无关的内容来改善图像的组成和美学质量。现有的图像裁剪数据库大多只提供一个或多个人工标注的边界框作为基准,难以反映实际中图像裁剪的非唯一性和灵活性。 采用IoU等评价指标也不能可靠地反映裁剪模型的真实性能。本文回顾了图像裁剪的问题,并通过考虑图像裁剪的特殊特性和要求(如局部冗余、内容保存、高宽比),提出了基于网格锚的公式。 我们的公式将候选裁剪窗口的搜索空间从数百万减少到

qq_22565865的博客 2948

SpotBugs使用

spotbugs命令行参数解析

javajingling的专栏 2947

C语言图形化界面——含图形、按钮、鼠标、进度条等部件制作(带详细代码、讲解及注释)

本文借助easyx库函数(提供下载链接),很方便地用C语言实现了鼠标、按钮、进度条、坐标尺等操作,为普通C程序的友好人机交互界面提供了一种简单便捷的方案。

体会编程语言独到的美 17万+

BLDC&PMSM电机控制器硬件设计工程(一)概述&需求&规划

这里是一个专注于电机控制器硬件工程的开放社区与知识仓库。我们的核心使命是分享、交流与共创,致力于解开无刷直流电机(BLDC)和永磁同步电机(PMSM)中、大功率控制器硬件设计,包括驱动IC选型,电流传感器选型,控制IC,母线电容计算,功率模块(IGBT、MOS管)选型以及大功率功率模块驱动电源设计。功率等级: 重点关注中等功率(如500W-10kW) 并向大功率(10kW以上) 延伸,探讨对应的功率器件(如MOSFET, IGBT, SiC)选型与驱动。

小幽余生不加糖 638

使用 MATLAB/Simulink + Simscape Electrical,构建一个含储能的微电网系统,实现储能系统与并网逆变器的协同控制

摘要:本文基于Simulink平台,详细介绍了微电网中储能系统与并网逆变器的协同控制建模与仿真方法。主要内容包括:1)构建包含光伏、风电、锂电池和双向DC-DC变换器的微电网系统;2)设计并网逆变器的PQ/Vf双模式控制策略;3)实现储能系统与逆变器的协同控制逻辑,包括SOC保护和功率分配;4)通过多种工况仿真验证系统性能。结果表明,该系统能有效维持微电网稳定运行,支持并网/离网无缝切换。文章还探讨了优化方向和应用扩展,为新能源微电网控制提供了实用参考。

xiaoheshang_123的博客 100

PyCharm 怎么不升级直接使用Jupyter Notebook

在PyCharm 中需要升级到 PyCharm Professional 版本,才能直接使用 Jupyter Notebook。从截图来看,Jupyter Notebook 已经成功启动,并且正在运行。这将在默认网络浏览器中打开一个新的标签页,显示文件浏览器界面。可以在这里创建和编辑。文件添加到 PyCharm 项目中,并使用纯文本编辑功能进行修改。支持与外部工具集成,可以配置它以调用命令行工具或脚本来启动。,参数可以根据需要设置,工作目录设置为项目根目录。,你仍然可以在本地环境中安装和运行。

Davina_yu的博客 996

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 这份大厂面试真题之蚂蚁金服,已经通过很多内部人员的证实!建议收藏 ,反复观看!(一)
下一篇: 详细讲解:RocketMQ的限时订单实战与RocketMQ的源码分析!
Java_Yhua
博客等级 码龄6年 51粉丝 75原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值