论坛元老
- 威望
- 1409
- 贡献
- 1166
- 热心值
- 0
- 金币
- 1324
- 注册时间
- 2021-9-26
|
提示:
月度会员每天本板块免费下载3次,年度会员每天免费下载6次,永久会员每天免费下载10次,过程中遇到问题,请论坛私信联系管理员;
一、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课程回顾
└── 资料代码/
|
|