![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rocketmq
文章平均质量分 89
整理rocketmq相关理论知识,面试题,源码解读。。
Chen_leilei
头发掉光,技术见长
展开
-
Rocketmq面试(四)RocketMQ 的推模式和拉模式有什么区别?
通过本文的讲解,可以看到 PUSH 模式和 PULL 模式本质上都是客户端主动拉取,RocketMQ并没有真正实现 Broker 推送消息的 PUSH 模式。RocketMQ 中 PULL 模式和 PUSH 模式的区别如下:PULL 模式是从 Broker 拉取消息后放入缓存,然后消费端不停地从缓存取出消息来执行客户端定义的处理逻辑,而 PUSH 模式是在死循环中不停的从 Broker 拉取消息,拉取到后调用回调函数进行处理,回调函数中调用客户端定义的处理逻辑;原创 2023-06-12 21:49:05 · 1577 阅读 · 0 评论 -
Rocketmq面试(六)Rocketmq6种找不到Broker的情况
Rocketmq Client在发送消息的时候,会根据topic首先从本地缓存获取Broker,获取Broker,如果获取不到,就会到Name Server集群中获取。原创 2023-06-10 14:39:18 · 1701 阅读 · 0 评论 -
Rocket面试(五)Rocketmq发生流量控制的情况有哪些?
本文介绍了 RocketMQ 发生流量控制的 8 个场景,其中 Broker 4 个场景,Consumer 4 个场景。Broker 的流量控制,本质是对 Producer 的流量控制,最好的解决方法就是给 Broker 扩容,增加 Broker 写入能力。而对于 Consumer 端的流量控制,需要解决 Consumer 端消费慢的问题,比如有第三方接口响应慢或者有慢 SQL。Broker4种场景:page cache 繁忙:获取commitlog写入锁超过1s。原创 2023-06-10 14:24:01 · 2023 阅读 · 0 评论 -
Rocketmq 一文带你搞懂rocketmq基础
通过上面的分析,我们可以总结一个通过 key 在 Index 文件中查找消息的流程,如下:1.计算 key 的 hashcode;2.根据 hashcode 在 Hash 槽中查找位置 s;3.计算 Hash 槽在 Index 文件中位置 40+(s-1)*4;4.读取这个槽的值,也就是Index条目序号 n;5.计算该 index 条目在 Index 文件中的位置,公式:40 + 500万 * 4 + (n-1) * 20;原创 2023-06-10 11:43:25 · 558 阅读 · 0 评论 -
Rocketmq面试(三)消息积压,增加消费者有用么?
这种策略在消费者启动的时候可以指定消费哪些 MessageQueue。原创 2023-06-01 21:04:18 · 737 阅读 · 0 评论 -
Rocketmq面试(二)Rocketmq如何保证消息不丢失
如果想要保证消息不丢失就要知道,消息可能出现丢失得地方。1.producer发送消息2.Broker存储消息3.Consumer消费消息4.Broker主从切换下面一共有9个维度可以保证消息不丢失。原创 2023-06-01 20:38:51 · 1333 阅读 · 2 评论 -
Rocketmq面试(一) Rocketmq同一个消费组订阅不同的Tag,会有什么问题?
关键在于最后这个tag的hashcode值,这个 tag 的作用是过滤消息,假如一个 Consumer 订阅了 Topic1 中的 Tag1,那这个 Consumer 拉取消息时,首先从 Name Server 获取订阅关系,得到当前 Consumer 订阅的所有 tag 的 hashcode 集合 codeSet。1.订阅的Topic相同,或者订阅的Topic相同 tag也相同,或者Topic相同,tag的顺序也相同。最后一个问题,怎么看是不是存在订阅关系不一致的 现象?不想看官网的,直接看结论。原创 2023-05-30 21:37:33 · 2349 阅读 · 4 评论 -
Rocketmq学习之路(一)从生产上的问题引出MQ
但是上面说的一些操作,其实藏匿着很多危机,比如告诉物流拿货,第三方物流系统接口挂掉了,那岂不是你下不了订单?用户岂不是财货两空?海量数据是通过分布式存储的方式来进行存储的,每台机器上的rocketmq进程一般称之为broker,每个broker会收到不同的消息,然后会把消息存储在本地的磁盘文件中。这样的话,假设你有1亿条消息,然后有10台机器部署了RocketMQ的Broker,理论上不就可以让每台机器存储1000万条消息了吗?5.支持一些基本功能么(延时消息,事务消息,消息堆积,消息回溯,死信队列)?原创 2023-05-28 12:30:06 · 360 阅读 · 0 评论