01. 开篇词 | 优秀的程序员,你的技术栈中不能只有“增删改查”.html
02. 预习 | 怎样更好地学习这门课?.html
03. 01 | 为什么需要消息队列?.html
04. 02 | 该如何选择消息队列?.html
05. 03 | 消息模型:主题和队列有什么区别?.html
06. 04 | 如何利用事务消息实现分布式事务?.html
07. 05 | 如何确保消息不会丢失?.html
08. 06 | 如何处理消费过程中的重复消息?.html
09. 07 | 消息积压了该如何处理?.html
10. 08 | 答疑解惑(一) : 网关如何接收服务端的秒杀结果?.html
11. 09 | 学习开源代码该如何入手?.html
12. 10 | 如何使用异步设计提升系统性能?.html
13. 11 | 如何实现高性能的异步网络传输?.html
14. 12 | 序列化与反序列化:如何通过网络传输结构化的数据?.html
15. 13 | 传输协议:应用程序之间对话的语言.html
16. 14 | 内存管理:如何避免内存溢出和频繁的垃圾回收?.html
17. 加餐 | JMQ的Broker是如何异步处理消息的?.html
18. 15 | Kafka如何实现高性能IO?.html
19. 16 | 缓存策略:如何使用缓存来减少磁盘IO?.html
20. 17 | 如何正确使用锁保护共享数据,协调异步线程?.html
21. 18 | 如何用硬件同步原语(CAS)替代锁?.html
22. 19 | 数据压缩:时间换空间的游戏.html
23. 20 | RocketMQ Producer源码分析:消息生产的实现过程.html
24. 21 | Kafka Consumer源码分析:消息消费的实现过程.html
25. 22 | Kafka和RocketMQ的消息复制实现的差异点在哪?.html
26. 23 | RocketMQ客户端如何在集群中找到正确的节点?.html
27. 24 | Kafka的协调服务ZooKeeper:实现分布式系统的“瑞士军刀”.html
28. 25 | RocketMQ与Kafka中如何实现事务?.html
29. 26 | MQTT协议:如何支持海量的在线IoT设备?.html
30. 27 | Pulsar的存储计算分离设计:全新的消息队列设计思路.html
31. 28 | 答疑解惑(二):我的100元哪儿去了?.html
32. 29 | 流计算与消息(一):通过Flink理解流计算的原理.html
33. 30 | 流计算与消息(二):在流计算中使用Kafka链接计算任务.html
34. 31 | 动手实现一个简单的RPC框架(一):原理和程序的结构.html
35. 32 | 动手实现一个简单的RPC框架(二):通信与序列化.html
36. 33 | 动手实现一个简单的RPC框架(三):客户端.html
37. 34 | 动手实现一个简单的RPC框架(四):服务端.html
38. 35 | 答疑解惑(三):主流消息队列都是如何存储消息的?.html
39. 期中测试丨10个消息队列热点问题自测.html
40. 期末测试 | 消息队列100分试卷等你来挑战!.html
41. 结束语 | 程序员如何构建知识体系?.html
42. 第二季回归丨这次我们一起实战后端存储.html