一:MQ的作用
- 系统解耦,异步通知,流量消峰;
二:kafka是什么?
分布式消息系统,高吞吐量比较多,组成部分(图2)
特性:高可用,可扩容,解耦,异步,限流消峰(解决突发流量,防止服务器打垮,请求1000W,实际库存200W,防止队列中200W,其他返回售空);
- https://www.bilibili.com/video/BV1Hi4y1N7jL?p=3
- https://www.bilibili.com/video/BV1zX4y1g7my?spm_id_from=333.337.search-card.all.click
三:内部机制-消息同步?
四:内部机制-偏移量offerset?
五:消息防止丢失?
六:幂等性,防止重复消费问题;
七:常见分析
-
秒杀
-
https://blog.csdn.net/weixin_42692686/article/details/108375739?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164825809616781683955586%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164825809616781683955586&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-108375739.142v5pc_search_insert_es_download,143v6register&utm_term=%E7%A7%92%E6%9D%80%E6%B4%BB%E5%8A%A8%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B&spm=1018.2226.3001.4187
-
https://www.cnblogs.com/hd92/p/14841117.html
-
https://www.bilibili.com/video/BV1sK4y1x749?p=17&spm_id_from=pageDriver
-
12306
-
转账
八:高性能原因
- (1)分布式存储架构(一个主题下多个分区,同时可以被多个消费者和生产者去使用,也增加了接受消息和消费消息的能力);
(2)磁盘顺序读取(kafka消息不能修改以及不会从文件中间删除保证了磁盘顺序读,kafka的消息写入文件都是追加在文件末尾,不会写入文件中的某个位置(随机写)保证了磁盘顺序写),
(3)读写数据的批量batch处理以及压缩传输,
(4)数据传输的零拷贝
==================================