【八股】消息中间件

2024-05-10 22:52
文章标签 消息中间件 八股

本文主要是介绍【八股】消息中间件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通用MQ问题

使用场景

  • 异步发送(验证码、短信、邮件)
  • MYSQL和Redis,ES之间的数据同步
  • 分布式事务
  • 削峰填谷

消息的重复消费问题

👉定义:消费者已经消费了消息,但是可能由于网络抖动或者消费者挂了导致ack回执没有发送给MQ

👉解决方案

  1. 为每条消息设置一个唯一的标识id,在消费者消费消息时,验证这个业务id是否存在,如果存在则说明已经消费过,不要再消费了。
  2. 幂等方案:添加redis分布式锁、数据库锁(乐观锁、悲观锁)

RabbitMQ

消息发送的一般流程

  1. 消息的发送者(publisher)将消息发送给交换机(exchange)
  2. 由交换机路由到各个消息队列(queue)
  3. 再由消费者(consumer去消费消息)。

如何保证消息不丢失

👉开启生产者确认机制Publisher Confirm,如果消息发送失败会返回不同的ack【比如step1失败,响应nack publish-confirm;step2失败,响应

这篇关于【八股】消息中间件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/977793

相关文章

代码随想录八股训练营第三十七天| C++

前言 一、map和unorder_map的区别? 1.1.内部实现: 1.2.排序: 1.3.查找效率: 1.4.内存使用: 1.5.迭代器: 1.6.键的唯一性: 1.7.使用场景: 二、C++11 新特性有哪些? 2.1.std::map: 总结 前言 在现代软件开发中,选择合适的数据结构如 C++ 标准库中的 std::map 和 std::unordered_

代码随想录八股训练营第三十六天| C++

前言 一、push_back()和emplace_back()的区别? 1.1.push_back(): 1.2.emplace_back(): 1.3.区别总结: 1.4.使用场景: 二、map dequeu list 的实现原理? 2.1.std::map: 2.2. std::deque: 2.3. std::list: 2.4. 区别总结: 总结 前言 在C+

5000字阐述云原生消息中间件Apache Pulsar的核心特性和设计概览

点击上方蓝色字体,选择“设为星标” 回复”面试“获取更多惊喜 Apache Pulsar 是 Apache 软件基金会顶级项目,自称是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。 Pulsar 是一个用于服务器到服务器的消息系统,具有多租户

消息中间件都有哪些

RabbitMQ:这可是一个开源的消息代理软件,也叫消息中间件。它支持多种消息传递协议,可以轻松地在分布式系统中进行可靠的消息传递。   Kafka:Apache Kafka是一个分布式流处理平台,它主要用于处理实时数据流。Kafka的设计初衷是为了处理高吞吐量的日志数据,但它也被广泛用于其他类型的消息传递和流处理任务。   ActiveMQ:Apache ActiveMQ

【面试八股总结】MySQL日志:undo log、redo log、binlog

MySQL中存在三种日志: undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。redo log(重做日志):是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复;binlog (归档日志):是 Server 层生成的日志,主要用于数据备份和主从复制; 一、回滚日志undo log

九银十拿到大模型(LLM)offer,面试八股

金九银十拿到大模型(LLM)offer,面试八股 从事大模型的朋友在 金J九银十拿到了一份不错的offer,面试十几家公司,通过了六家。好在分享了大佬总结的大模型方向面试的常见题目(含答案),短时间内过了一边,能针对的回答。有了面试框架更容易拿到offer,分享给大家,祝大家都能拿到自己心仪的offer

代码随想录八股训练营第三十一天| C++

前言 一、虚函数怎么实现的: 1.1.虚函数声明:: 1.2.虚函数表(vtable): 1.3.函数指针:: 1.4.动态绑定: 1.5.析构函数: 1.6.纯虚函数: 二、虚函数表是什么?? 2.1. 虚函数表的工作原理:: 2.2. 虚函数表的作用:: 2.3.虚函数表的实现细节: 总结 前言 在面向对象编程中,多态性是一个核心概念,它允许我们以统一的方式处理

【C++八股题整理】内存布局、堆和栈、内存泄露、函数调用栈

C++八股题整理 内存布局C++中的内存分配情况堆和栈的内存有什么区别? 堆堆内存分配慢如何优化?内存池内存溢出和内存泄漏是什么?如何避免?内存碎片是什么?怎么解决? 栈为什么栈的访问效率比堆高?函数调用时栈的变化?函数的参数列表为什么从右往左入栈? 内存布局 C++中的内存分配情况 区域存储内容分配方式生命周期栈 (Stack)局部变量、局部常量、函数的参数和返回地址自

代码随想录八股训练营第二十七天| C++

前言 一、什么是内存泄漏?如何检测和防止? 1.1.内存泄漏通常发生在以下几种情况: 1.2.如何检测内存泄漏: 1.3.如何防止内存泄漏: 二、什么是野指针,怎么避免? 2.1. 野指针的产生原因: 2.2. 避免野指针的方法: 总结 前言 本文将深入探讨C++内存管理的核心概念,包括内存泄漏的定义、检测方法和预防策略,以及野指针的问题和避免技巧。通过这些内容的详

代码随想录八股训练营总结篇 2024年8月

代码随想录八股训练营总结篇 2024年8月 1. 报名初衷 ​ 随着秋招的临近,我意识到自己需要迅速提升各方面的技术能力。但是在准备过程中,我自己学习动力不足,常常难以坚持。为了找到一群志同道合的学习伙伴,共同营造学习氛围,我决定报名参加八股训练营。参加训练营的初衷是希望能够系统性地学习这些领域的核心内容,并将其应用到实际工作中。我带着这样的期待,从2024年7月22号开始了这段为期40天的学