当前位置: 首页 > news >正文

面试题储备-MQ篇 2-说说你对RocketMQ的理解

嗯,RocketMq主要由生产者producer、消费者consumer、broker和nameServer四部分组成。
nameServer启动后会与broker建立长连接,broker启动后会将topic和broker的对应关系通过长连接存储到nameServer,生产者会建立连接从nameServer获取topic对应的broker,给对应的broker发消息,broker接收到消息后将消息存入commitLog文件,消费者也会从nameServer拉取topic对应的broker,再从broker拉取topic对应的commitLog文件里的消息。

问:RocketMq一共有哪些消费模式:

集群模式-每个分组内消息只能被一个实例消费一次
广播模式-每个分组内消息可以被多次消费
一般我们用的都是集群模式,消息被分组内某个实例消费后,就不会再被其他实例消费到,想要消费同一个topic可以再创建一个新的分组消费;

问:RocketMq消费消息是推模式还是拉模式?

api提供了推和拉的方法,但是实际都是使用的拉模式,实际都是消费者从nameServer获取topic对应的broker,从broker的队列里拉取消息

问: RocketMq是如何进行消息的存储的?

broker接收了生产者发送的消息后,会将消息存入commitLog文件中,之后将消息的大小、存储的偏移量等信息存到comsumeQueue文件。在消费者拉取消息的时候,从consumeQueue获取基本信息,再根据消息存放的信息从commitLog文件获取消息

问:RocketMq消息积压问题如何解决?

和rabbitMq消息积压差不多,多线程消费or异步or改批量处理or消息转发后分别处理

问: RocketMq如何保证消息不丢失?

和rabbitMq一样,生产者接收broker返回结果,失败或者异常重试;broker端将消息存入磁盘,并进行主从同步,同步完成再给生产者返回保存成功;消费者端,在mq处理完成后手动提交返回消费完成

http://www.lryc.cn/news/625356.html

相关文章:

  • 智慧养老中IPTV融合对讲:重塑养老沟通新生态
  • 【Qt开发】常用控件(五)
  • 金融行业私域运营:企业微信+AI如何实现数智化经营?
  • LeetCode-17day:贪心算法
  • 云计算核心技术之云存储技术
  • C语言基础:(十九)数据在内存中的存储
  • MoonBit Perals Vol.06: Moonbit 与 LLVM 共舞 (上):编译前端实现
  • consul-基础概念
  • 一个多功能的文件分享工具--zdir手动部署教程
  • Tesollo DeltoGripper DG-5F具有抓握和操纵能力的灵巧手
  • Swift与C++混编深度解决方案:手动桥接 vs SwiftyCPP框架性能终极评测
  • 垂直领域大模型构建:法律行业“类ChatGPT”系统的训练与落地
  • 快手可灵招海外产品运营实习生
  • 亚矩阵云手机智能定位:助力Snapchat矩阵账号的本地化内容运营穿透技术
  • 【光学神经网络与人工智能应用专题】
  • 禾赛激光雷达AT128P/海康相机(2):基于欧几里德聚类的激光雷达障碍物检测
  • 【科研绘图系列】R语言绘制多种小提琴和云雨图
  • Kubernetes 简介
  • 初步学习WPF-Prism
  • 深入解析:Unity、Unreal Engine与Godot引擎中的Uniform变量管理
  • [ORACLE数据库] ORACLE 的 PL/SQL 块
  • 摄像头模块在运动相机中的应用
  • arcgis-提取范围中最大占比面积的信息或唯一值
  • 面试问题详解四:Qt 多线程与信号槽机制
  • Day09 Go语言深入学习(1)
  • 8.19作业
  • 工业相机基本知识解读:像元、帧率、数据接口等
  • 视觉采集模块的用法
  • HTML应用指南:利用GET请求获取全国新荣记门店位置信息
  • BEV:隐式相机视角转换-----BEVFormer