**高并发、微服务 、性能调优实战案例100讲，所有案例均源于个人工作实战，均配合代码落地**

加我微信：<span style="font-weight:bold; color:red">itsoku</span>，所有案例均提供在线答疑。



# 第100节 完结

<span style="font-weight:bold; color:red">目前整个课程59块钱，100个案例，含所有源码 & 文档 & 技术支持，可点击左下角小黄车了解</span>



# 课程总结

整个课程从理论到实战，帮助大家掌握后端开发的核心技能，提升在并发编程、分布式系统，微服务架构等方面的能力。

下面对课程归个类，更方便大家学习。

## 1. 并发与性能优化

- **分片上传**：处理大文件上传的实战技巧

  ```
  1. 分片上传实战
  ```

- **并发处理工具类**：通用并发处理工具类的实现与应用

  ```
  2. 通用并发处理工具类实战
  ```

- **接口性能压测**：实现接口性能压测工具类

  ```
  3. 实现一个好用接口性能压测工具类
  ```

- **超卖问题**：解决超卖问题的多种方案

  ```
  4. 超卖问题的4种解决方案，也是防止并发修改数据出错的通用方案
  ```

- **接口限流**：使用Semaphore实现接口限流

  ```
  5. Semaphore实现接口限流实战
  ```

- **并行查询**：通过并行查询优化接口响应速度

  ```
  6. 并行查询，优化接口响应速度实战
  12. 并行查询，性能优化利器，可能有坑
  ```

- **大事务优化**：解决大事务带来的性能问题

  ```
  7. 接口性能优化之大事务优化
  ```

- **动态线程池**：手写线程池管理器及动态线程池的实现

  ```
  9. 手写线程池管理器，管理&监控所有线程池
  10. 动态线程池
  ```

## 2. 分布式与微服务

- **动态Job**：SpringBoot实现动态Job的实战

  ```
  11. SpringBoot实现动态Job实战
  ```

- **幂等性**：解决幂等性问题的多种方案

  ```
  13. 幂等的4种解决方案，吃透幂等性问题
  43. 接口幂等，通用方案 & 代码落地
  ```

- **分布式锁**：分布式锁的实现与应用，包括Redisson等工具类

  ```
  39. 分布式锁详解
  40. 分享一个特别好用的Redissson分布式锁工具类
  41. 一个注解轻松搞定分布式锁
  ```

- **微服务架构**：微服务中的公共参数传递、链路日志追踪等

  ```
  19. 通过AOP统一打印请求链路日志，排错效率飞升
  42. 微服务中如何传递公共参数？
  44. 微服务链路日志追踪实战
  ```

- **分布式事务**

  ```java
  36. 分布式事务-MQ最终一致性-实现跨库转账（案例+源码+文档）
  37. 分布式事务-MQ最终一致性-实现电商账户余额提现到微信钱包（案例+源码+文档）
  38. 分布式事务：通用的TCC分布式事务生产级代码落地实战
  ```

## 3. 数据库与数据操作

- **数据一致性**：确保MySql和Redis数据一致性的策略

  ```
  22. MySql和Redis数据一致性
  ```

- **数据脱敏**：SpringBoot中实现数据脱敏的优雅设计

  ```
  23. SpringBoot数据脱敏优雅设计与实现
  ```

- **分库分表**：分库分表的选择、设计、迁移等实战技巧

  ```
  69. 分库、分表、分库分表，如何选择？
  70. 分库分表：分表字段如何选择？
  71. 分库分表：分表数量为什么建议是2的n次方？
  72. 分库分表：如何平滑迁移数据？
  ```

- **高性能ID生成器**：基于MySQL实现高性能分布式ID生成器

  ```
  61. 使用MySQL，实现一个高性能，分布式id生成器
  ```

- **数据同步**：MySQL数据同步到ES的靠谱方案

  ```
  95. MySQL数据如何同步到ES？靠谱方案
  ```

## 4. 消息队列（MQ专题）

- **MQ使用场景**：MQ的典型使用场景

- **消息可靠性**：确保MQ消息可靠性的方法

- **事务消息**：SpringBoot中实现事务消息的步骤

- **延迟消息**：MQ延迟消息的通用方案

- **幂等消费与重试**：MQ消息幂等消费及消费失败重试方案

- **顺序消息**：MQ顺序消息的通用方案

- **消息积压**：消息积压问题及解决思路

  ```
  28. MQ专题-MQ典型的使用场景
  29. MQ专题-如何确保消息的可靠性
  30. MQ专题-SpringBoot中，手把手教你实现事务消息
  31. 手写一个好用的延迟任务处理工具类
  32. MQ专题-MQ延迟消息通用方案实战
  33. MQ消息幂等消费 & 消费失败衰减式重试通用方案 & 代码 & 文档
  34. MQ专题：顺序消息通用方案实战 & 代码落地 & 文档
  35. MQ专题：消息积压相关问题及解决思路
  ```

## 5. 生产问题排查

- **日志管理**：通过AOP统一打印请求链路日志

  ```
  19. 通过AOP统一打印请求链路日志，排错效率飞升
  ```

- **错误排查**：接口报错快速定位日志、OOM排查、CPU飙升排查等

  ```
  17. 接口报错，如何快速定位日志？
  54. 性能调优：线程死锁相关问题
  55. 如何排查OOM？
  56. cpu飙升，如何快速排查？
  57. cpu飙升，使用Arthas，3秒定位问题
  58. 接口响应慢，使用Arthas，3秒定位问题代码
  60. 生产上，代码未生效，如何排查？
  62. 方法执行异常，使用arthas，快速定位问题
  ```

- **Debug技巧**：IDEA中的必备debug技巧及多线程调试方法

  ```
  86. idea中的必备debug技巧，高手必备
  91. idea多线程调试，这个技巧也太棒了吧，你会么？
  ```

## 6. 其他实战案例

```
14. 接口通用返回值设计与实现
15. 接口太多，各种dto、vo不计其数，如何命名？
16. 一个业务太复杂了，方法太多，如何传参？
18. 线程数据共享必学的3个工具类：ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal
20. 大批量任务处理常见的方案（模拟余额宝发放收益）
21. 并发环境下，如何验证代码是否正常？
24. 一行代码搞定系统操作日志
25. Aop简化MyBatis分页功能
26. ThreadLocal 遇到线程池有大坑 & 通用解决方案
27. SpringBoot读写分离实战（一个注解搞定读写分离 && 强制路由主库）
45. 接口测试利器HTTP Client，不用Postman也可以
46. 封装MyBatis，实现通用无SQL版CRUD功能ORM框架
47. MyBatisPlus 轻松实现多租户数据隔离
48. 电商系统-资金账户表设计 及 应用实战
49. UML画图神器：PlantUML，画图效率飞升
50. 多线程事务，3秒插入百万数据
51. SpringBoot中自动初始化数据库功能，非常好用
52. SpringBoot优雅停机
53. 分享一个特好用的集合工具类，开发效率轻松翻倍
59. 策略模式，轻松消除ifelse代码
63. 扫码登录详解
64. 使用hutool生成&解析二维码，太方便了
65. SpringBoot中，redis中实现排行榜
66. SpringBoot中，Redis如何实现查找附近的人功能？
67. SpringBoot中，接口签名，通用方案，一次性搞懂
68. SpringBoot中，接口加解密，通用方案实战
73. 并发编程有多难？值得反复研究的一个案例
74. 使用Redis Pipeline，接口性能提升10倍
75. 电商中，重复支付如何解决？
76. 千万级数据，全表update的正确姿势
77. 优雅实现树形菜单，适用于所有树，太好用了
78. 接口调用利器：RestTemplate，吃透它
79. 微服务跨库查询，如何解决？一次性搞懂
80. 逻辑删除与唯一约束冲突，如何解决？
81. 评论系统如何设计，一次性给你讲清楚
82. SpringBoot下载文件的几种方式，一次性搞懂
83. 订单超时自动取消，最常见的方案
84. 责任链模式优化代码，太好用了
85. CompletableFuture 实现异步任务编排，太好用了
87. Java动态生成word，太强大了
88. 海量据量统计，如何提升性能？
89. MyBatis模糊查询，千万不要再用${}了，容易搞出大事故
90. Spring事务失效，常见的几种场景，带你精通Spring事务
92. MySQL排序分页，可能有坑，需要注意
93. 涉及到钱的，千万不要用double，请用BigDecimal
94. MyBatis动态SQL不要乱用
96. 订单状态流转代码优化，确实优雅
97. 线上问题排查思路
98. 经典并发案例分析，确实有点难，一起来挑战下
99. 如何优雅的处理线程池内异常？
```



# 如何学习？

1. 先把课程目录好好看一遍
2. 根据自己的需求选择性学习
3. 也可以按照目录一个一学，有些知识点前后是是有依赖的，按顺序学，更容易一些



# 文档 & 源码 & 技术支持

<div style="color:red; font-weigth:bold; font-size:30px">需要的小伙伴加我微信：itsoku</div>

遇到技术问题，可以留言或者加我微信一起交流。

视频已全部发布到B站和个人视频号

- B站：程序员路人   https://space.bilibili.com/634982594/channel/collectiondetail?sid=2997559

- 视频号：程序员路人



# 后续还有有其他课程，请持续关注

还没有关注的朋友点个关注，不要错过后续更多干货内容，我们下期见。