31. RabbitMQ顺序消费

ops/2024/9/24 13:15:34/

1. 前言

上个小节中我们介绍了 RabbitMQ 中如何防止消息丢失,即保证消息发送的 At Least Once 性质,除此之外,如何防止消息被重复消费,即保证消息消费的 Exactly Once 性质,也是业务逻辑中需要考虑的问题。

2. 消息消费顺序

面试官提问:业务中使用了 RabbitMQ 消息队列,如何保证消息的顺序消费?

题目解析

保证消息的顺序消费是业务场景下经常面临的挑战,可能在面试中会涉及到一些实战场景,例如电商的下单逻辑,在用户下单之后,会发送创建订单和扣减库存的消息,我们需要保证扣减库存在创建订单之后执行。

在MQ层面支持消息的顺序消费是一件开销很大的操作,例如使用事务,所以除非特定场景,一般不在 RabbitMQ 消息传输底层支持顺序。在上层即应用层处理业务逻辑是常规操作,有两种通用解决方案:

(1)同步发送消息:将消息发送从异步模式切换为同步模式,例如先发送创建订单消息,当创建订单的下游消费者发送ACK确认成功消费后,再发送扣减库存的消息;
(2)消息实体增


http://www.ppmy.cn/ops/115302.html

相关文章

Ceph官方文档_01_Ceph简介

目录 Ceph介绍Ceph介绍 Ceph可用于向云平台提供Ceph对象存储,Ceph可用于向云平台提供Ceph块设备服务。Ceph可用于部署Ceph文件系统。所有Ceph存储群集部署开始都是先设置每个Ceph节点,然后再设置网络。 Ceph存储集群需要以下内容:至少一个Ceph监视器和至少一个Ceph管理器,…

Fastapi做成docker启动失败,需要启动线程。

没启动起来,进入容器看了下,报下面的错。 OpenBLAS blas_thread_init: pthread_create failed for thread 1 of 48: Operation not permitted OpenBLAS blas_thread_init: RLIMIT_NPROC -1 current, -1 max ....网上百度了下说这样可以 https://www.byt…

论文阅读 - MDFEND: Multi-domain Fake News Detection

https://arxiv.org/pdf/2201.00987 目录 ABSTRACT INTRODUCTION 2 RELATED WORK 3 WEIBO21: A NEW DATASET FOR MFND 3.1 Data Collection 3.2 Domain Annotation 4 MDFEND: MULTI-DOMAIN FAKE NEWS DETECTION MODEL 4.1 Representation Extraction 4.2 Domain Gate 4.…

基于VUE的医院抗生素使用审核流程信息化管理系统

开发背景 随着医疗行业的快速发展和信息技术的不断进步,医院内部管理系统的信息化建设变得尤为重要。抗生素作为治疗感染性疾病的重要药物,在临床使用过程中需要严格控制以避免滥用导致的耐药性问题。传统的抗生素使用审核流程往往依赖于人工审核&#x…

网络安全与国家安全的关系

网络安全与国家安全密切相关,网络安全是国家安全的重要组成部分。网络安全不仅关系到国家的政治安全、经济安全、文化安全、社会安全、军事安全等领域,还直接影响着国家的总体安全观。在信息化时代,网络空间已成为继陆、海、空、天之后的第五…

数据库主备副本物理复制和逻辑复制对比

数据库主从节点的数据一致性是保证数据库高可用的基本要求,各个数据库在实现方式上也各有异同。而主备复制的方式无外乎两种:物理复制和逻辑复制,本文简要对比下两种方式的不同,并分析下国产数据库是如何实现的。 1、数据库复制基…

Hive企业级调优[4]——HQL语法优化之分组聚合优化

HQL语法优化之分组聚合优化 优化说明 在 Hive 中,未经优化的分组聚合通常通过一个 MapReduce Job 实现。Map 端负责读取数据,并按分组字段进行分区,通过 Shuffle 将数据发送至 Reduce 端,在 Reduce 端完成最终的聚合运算。 Hiv…

林业有害生物防治设计、防治作业、防治监理认定条件

林业有害生物防治的工作正在推进,这样能够进一步促进我国的经济发展和社会的可持续发展,还可以保护区域内的生态安全和森林的资源有更重大的意义,这样能够平衡生物多样化的发展和保护森林。林业的发展过程中,有害生物的防治是必不…