MAX 发表于 2024-12-3 20:52:37

一、MQ是什么 MQ全称为Message Queue,即消息队列 ,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生 产、存储、消费全过程的软件系统,遵循FIFO原则。

二、为什么用MQ 上下班高峰期使用天府通刷码的人非常多,以为做并发量很高,一个出站请求到后台需要做费用结算,或者积分赠送等业务。由于并发很高,并且费用结算和积分等业务本来就耗时,况且支付服务也不一定能承担那么大的请求量。 当服务器线程耗尽,后续请求会等待变慢,再加上高并发请求就会导致后续请求越来越慢,请求长时间等待,导致大量请求超时。并发太高,可能会导致服务器的内存上升,CPU使用率急速上升,甚至导致服务器宕掉。

加入MQ后的效果 高并发请求在MQ中排队,达到了消除峰值的目的,不会有大量的请求同时怼到支付系统 服务异步调用,“天府通出站API” 把结算消息放入MQ就可以返回“出站成功,费用稍后结算”给用户,响应时间很快 服务彻底解耦,即使支付服务挂掉,也不影响“天府通出站API”正常工作,当支付系统再启动仍然可以继续消费MQ中的消息。



├──  第1章 课程导学介绍/
│   ├── [ 13M]  1-1手写消息中间件--课程导学
│   └── [ 12M]  1-2课程详细内容安排
├──  第2章 深入常用消息队列原理/
│   ├── [ 51M]  2-1RabbitMq架构原理深入剖析
│   ├── [ 53M]  2-2RocketMq架构原理深入剖析
│   ├── [ 46M]  2-3Kafka架构原理深入剖析
│   └── [ 18M]  2-4三种消息队列对比剖析
├──  第3章 消息中间件架构设计篇/
│   ├── [4.3M]  3-1本章介绍
│   ├── [ 22M]  3-2CommitLog介绍-MQ的消息都存在哪儿?
│   ├── [ 29M]  3-3ConsumerQueue介绍-面对多消费者,消息的分配要如何设计
│   ├── [ 18M]  3-4消息集群架构思考(一)为什么消息队列还需用到注册中心?
│   ├── [ 37M]  3-5消息集群架构思考(二)多节点存储的架构要如何实现?
│   ├── [ 39M]  3-6复杂消息功能思考(一)消息重试机制如何实现?
│   ├── [ 31M]  3-7复杂消息功能思考(二)延迟消息要怎么做?
│   ├── [ 35M]  3-8复杂消息功能思考(三)事务消息是怎么一回事?
│   ├── [ 16M]  3-9复杂消息功能思考(四)内存映射自扩容设计思路
│   └── [7.1M]  3-10本章回顾
├──  第4章 【手写篇 - 第一步】 数据存储核心 - commitLog设计与实战/
│   ├── [3.9M]  4-1本章介绍
│   ├── [5.2M]  4-2代码仓库介绍
│   ├── [7.1M]  4-3消息原始数据存储结构讲解
│   ├── [ 36M]  4-4操作系统原理之-传统文件IO读写介绍
│   ├── [ 42M]  4-5基于mmap的读写工具封装(一)基础功能的实现
│   ├── [ 28M]  4-6基于mmap的读写工具封装(二)mmap的内存释放讲解
│   ├── [ 33M]  4-7基于mmap的读写工具封装(三)mmap工具的效果验证
│   ├── [ 38M]  4-8如何实现mq消息的顺序写入
│   ├── [ 41M]  4-9mq消息存储配置的管理
│   ├── [ 40M]  4-10mq基础配置的封装
│   ├── [ 40M]  4-11Broker的启动类设计
│   ├── [ 27M]  4-12commitLog写入逻辑细节分析
│   ├── [ 67M]  4-13如何获取最新写入的commitLog文件
│   ├── [ 15M]  4-14消息内容结构体设计
│   ├── [ 35M]  4-15消息结构体封装的实践
│   ├── [ 40M]  4-16commitlog文件剩余空间检测机制
│   ├── [ 53M]  4-17消息投递offset更新机制的实现
│   ├── [ 22M]  4-18消息写入的配置属性同步更新
│   ├── [ 46M]  4-19多线程场景下mmap的读写如何优化
│   └── [ 17M]  4-20commitlog追加写入数据测试
├──  第5章 【手写篇 - 第二步】消息分派的核心 - ConsumeQueue分析与实战/
│   ├── [3.6M]  5-1本章介绍
│   ├── [ 26M]  5-2针对ConsumerQueue的dispatcher操作
│   ├── [ 33M]  5-3consumequeue的文件存储结构设计
│   ├── [ 20M]  5-4【实战】ConsumeQueue存储结构实现(一)ConsumerQueue的offset数据结构设计
│   ├── [ 25M]  5-5【实战】ConsumeQueue存储结构实现(二)offset映射模型的实现
│   ├── [ 18M]  5-6【实战】ConsumeQueue存储结构实现(三)ConsumeQueue的offset定时刷盘机制
│   ├── [ 62M]  5-7【实战】ConsumeQueue存储预热链路逻辑搭建
│   ├── [ 44M]  5-8【实战】ConsumeQueue文件的预热实现
│   ├── [ 24M]  5-9consumequeue文件的映射写入和offset更新
│   ├── [ 11M]  5-10consumeQueue处理器的基础接口定义
│   ├── [ 24M]  5-11consumeQueue的offset定位获取
│   ├── [ 41M]  5-12consumequeue的数据读取实现
│   ├── [ 47M]  5-13consumequeue的offset更新实现
│   └── [ 20M]  5-14多消费者消费效果验证
├──  第6章 【手写篇 - 第三步】注册中心 - nameserver设计与实战/
│   ├── [ 19M]  6-1本章介绍
│   ├── [ 46M]  6-2注册中心的设计与实现-基础骨架的搭建
│   ├── [ 44M]  6-3注册中心的设计与实现(一)事件总线的发布能力实现
│   ├── [ 35M]  6-4注册中心的设计与实现(二)基于spi机制实现处理器实现
│   ├── [ 64M]  6-5注册中心的设计与实现(三)事件监听的逻辑完善
│   ├── [ 39M]  6-6注册中心的设计与实现(四)非法节点的剔除逻辑完善
│   ├── [ 33M]  6-7注册中心的设计与实现(五)broker与nameserver的网络通信建立
│   ├── [ 68M]  6-8注册中心的设计与实现(六)broker远程通信sdk的封装实现
│   ├── [ 42M]  6-9broker和nameserver的访问测试
│   ├── [ 17M]  6-10nameserver集群架构的设计思路剖析
│   ├── [ 48M]  6-11-1nameserver主从复制-主节点同步进程开启
│   ├── [ 51M]  6-12-2nameserver主从复制-主节点同步进程开启
│   ├── [ 52M]  6-13nameserver主从复制-主节点同步线程
│   ├── [ 56M]  6-14nameserver主从复制-从节点连接主节点
│   ├── [ 25M]  6-15nameserver主从复制-从节点接收主节点数据同步过程
│   ├── [ 37M]  6-16nameserver主从复制-同步效果验证
│   ├── [ 62M]  6-17nameserver主从复制-同步复制,异步复制,半同步复制的三种模式实现(一)
│   ├── [ 32M]  6-18nameserver主从复制-同步复制,异步复制,半同步复制的三种模式实现(二)
│   ├── [9.5M]  6-19链式复制架构的介绍
│   ├── [ 44M]  6-20链式复制的初始化实现mov
│   ├── [ 53M]  6-21链式复制的同步实现-全链路同步的实现
│   ├── [ 49M]  6-22链式复制的实现-全链路ack反馈的实现
│   ├── [ 12M]  6-23链式复制的实现-数据同步效果验证
│   └── [5.5M]  6-24本章回顾
├──  第7章 【手写篇 - 第四步】客户端SDK设计与实战/
│   ├── [3.9M]  7-1本章介绍
│   ├── [ 11M]  7-2如何设计一款消息队列的客户端SDK
│   ├── [ 87M]  7-3Netty异步转同步的功能封装
│   ├── [ 48M]  7-4Producer角色如何与NameServer建立网络连接
│   ├── [ 76M]  7-5拉取broker地址功能实现
│   ├── [ 44M]  7-6客户端拉取出broker地址功能实现
│   ├── @优库it资源网ukoou.com
│   ├── [ 50M]  7-7Producer端消息发送基础接口定义
│   ├── [ 56M]  7-8Producer发送数据到Broker端持久化实现
│   ├── [ 28M]  7-9Consumer基础接口的开发
│   ├── [ 12M]  7-10消息重平衡过程的梳理
│   ├── [ 63M]  7-11重平衡问题讲解
│   ├── [ 19M]  7-12Kakfa,RocketMQ中的重平衡策略了解
│   ├── [ 19M]  7-13消息消费需要考虑哪些问题
│   ├── [ 33M]  7-14消费者消息拉取监听器实现
│   ├── [ 61M]  7-15消息拉去请求链路完善
│   ├── [ 17M]  7-16消费端拉消息场景测试
│   ├── [ 70M]  7-17消费端拉数据后回应ack
│   ├── [ 28M]  7-18全链路mq推送与消费验证
│   └── [2.7M]  7-19本章回顾
├──  第8章 【手写篇 -第五步】broker高可用架构拓展实战/
│   ├── [3.9M]  8-1本章介绍
│   ├── [ 15M]  8-2Broker的主从复制思路整理
│   ├── [ 70M]  8-3topic的动态创建实现
│   ├── [ 21M]  8-4动态创建topic效果验证
│   ├── [ 65M]  8-5Broker集群模式下的实例注册逻辑实现
│   ├── [ 28M]  8-6面对Broker集群,客户端拉取ip的实现
│   ├── [6.5M]  8-7Broker集群的复制逻辑剖析
│   ├── [ 81M]  8-8Broker的主从链接通道初始化建立实现
│   ├── [ 24M]  8-9Broker主从节点多目录文件拆解
│   ├── [ 31M]  8-10Broker主从异步复制的实现
│   ├── [ 36M]  8-11Broker主从同步复制实现与验证
│   ├── [ 48M]  8-12Broker主从切换过程中会遇到的问题
│   ├── [ 38M]  8-13Broker主节点宕机监听处理
│   ├── [ 27M]  8-14Broker主从切换效果实现
│   └── [4.4M]  8-15本章总结
├── 第9章 【手写篇 - 第六步】复杂消息处理(一) - 消息重试功能的设计与实现/
│   ├── [2.6M]  9-1本章介绍
│   ├── [ 42M]  9-2消息重试设计思路实现
│   ├── [ 44M]  9-3消息重试Netty请求链路打通
│   ├── [ 16M]  9-4Consumer消息重试链路在时间轮中的运作细节梳理
│   ├── [ 20M]  9-5重试消息的存储效果验证
│   ├── [ 51M]  9-6时间轮组件的实现(一)
│   ├── @优库it资源网ukoou.com
│   ├── [ 37M]  9-7时间轮组件的实现(二)
│   ├── [7.2M]  9-8时间轮组件的效果验证
│   ├── [ 24M]  9-9多极时间轮的切换验证
│   ├── [ 28M]  9-10时间轮事件事件回调通知
│   ├── [ 33M]  9-11重试监听器回调
│   ├── [ 26M]  9-12重试主题的自动创建
│   ├── [ 30M]  9-13消息重试队列推送和消费的实现
│   └── [2.6M]  9-14本章回顾
├── 第10章 【手写篇 - 第七步】复杂消息处理(二) - 延迟消息功能的设计与实现/
│   ├── [2.2M]  10-1本章介绍
│   ├── [ 15M]  10-2延迟消息设计以及使用场景介绍
│   ├── [ 34M]  10-3延迟消息的效果实现
│   ├── [ 33M]  10-4延迟消息的持久化实现
│   ├── [ 50M]  10-5延迟消息的数据恢复如何实现
│   └── [1.6M]  10-6本章介绍
├── 第11章 【手写篇 - 第八步】复杂消息处理(三) -事务消息功能的设计与实现/
│   ├── [2.5M]  11-1本章介绍
│   ├── [4.3M]  11-2事务消息设计思路回顾
│   ├── [ 44M]  11-3事务消息的half消息提交
│   ├── [ 59M]  11-4本地事务回调接口的实现
│   ├── [ 59M]  11-5事务消息回调处理
│   ├── [ 18M]  11-6事务消息的效果验证
│   └── [1.8M]  11-7本章回顾
├── 第12章 【手写篇 - 第九步】可视化管理控制台设计与实战/
│   ├── [1.6M]  12-1本章介绍
│   ├── [5.0M]  12-2基础控制台的接口开发
│   ├── [ 25M]  12-3Broker数据的上报实现
│   ├── [ 34M]  12-4控制台的基础开发思路梳理
│   ├── [4.1M]  12-5控制台效果演示
│   └── [1.6M]  12-6本章介绍
├── 第13章 【手写篇 - 第十步】基于消息队列综合实战/
│   ├── [2.4M]  13-1本章介绍
│   ├── [ 22M]  13-2MQ多泳道环境的实现
│   ├── [ 18M]  13-3Kafka和实时计算
│   └── [3.6M]  13-4本章回顾
└── 第14章 课程回顾与常见面试题剖析/
    ├── [5.8M]  14-1本章介绍
    └── [ 10M]  14-2课程回顾
└── 资料代码/
已有 3 人购买  本主题需向作者支付 200 金钱 才能浏览 购买主题

hmk 发表于 2024-12-3 20:55:33

q

ranqijian 发表于 2024-12-3 21:08:28

1111111

qixianchuan 发表于 2024-12-3 22:16:35

2

逆天骚年 发表于 2024-12-3 22:24:58

6666666

knightzz98 发表于 2024-12-3 23:25:10

MQ大牛成长课--从0到1手写分布式消息队列

yang 发表于 2024-12-3 23:34:39

666667

233 发表于 2024-12-4 08:29:07

谢谢楼主

wm378802548 发表于 2024-12-4 08:59:59

感谢分享~

DSQ 发表于 2024-12-4 09:42:47

666666666
页: [1] 2 3 4
查看完整版本: MQ大牛成长课--从0到1手写分布式消息队列中间件