高并发项目
高并发项目总结SpringCloudRedis
17项目总结
本项目以一个单体架构的电商系统为起点,围绕"高并发"这一核心目标,逐步将其改造为分布式微服务架构。整个项目涉及的技术链路如下:
1.环境搭建
基于 VMware 虚拟机与宝塔 Linux 面板搭建服务器环境,并使用 Docker 快速部署 MySQL 等基础服务,完成前后端工程的导入与运行。
2.微服务拆分与服务治理
- 将单体系统拆分为商品、购物车、用户、交易、支付五个微服务;
- 使用 Nacos 作为注册中心,实现服务注册与发现;
- 通过 OpenFeign 完成服务之间的远程调用;
- 使用 Spring Cloud Gateway 作为统一入口,完成路由转发、跨域处理与统一登录鉴权;
- 通过 Nacos 配置管理实现多服务配置共享与配置热更新。
3.服务保护与分布式事务
- 使用 JMeter 对接口进行压力测试,量化系统的并发能力;
- 使用 Sentinel 解决服务雪崩问题,通过请求限流、线程隔离、Fallback 降级与服务熔断保障调用链路的稳定性;
- 借助 Seata 解决下单扣库存场景下的分布式事务问题,并对比了 XA 与 AT 两种模式。
4.异步消息
- 引入 RabbitMQ + SpringAMQP,把支付等场景的同步调用改造为异步调用,实现服务解耦与流量削峰;
- 通过生产者确认、消息持久化、Lazy Queue、消费者确认与失败重试保证消息可靠性;
- 利用死信交换机与延迟消息插件实现延迟消息,完成订单超时未支付自动关闭并释放库存。
5.MySQL优化
从垂直/水平分库分表、读写分离、索引设计与 SQL 优化等方向分析了高并发场景下 MySQL 的优化思路,并了解了 MyCat 中间件的分片与读写分离配置。
6.Redis缓存
- 使用 Redis 为读多写少的查询接口加入缓存,并基于 RedisTemplate 定制序列化;
- 按照 Cache Aside Pattern 处理缓存读写一致性;
- 系统解决了缓存穿透、缓存击穿、缓存雪崩三大问题;
- 搭建 Redis 主从集群与哨兵,实现读写分离与主节点宕机自动故障转移。
7.多级缓存与一致性
- 整合 Nginx 本地缓存 + JVM 进程缓存(Caffeine)+ Redis 分布式缓存,构建多级缓存,请求逐层命中,最大限度降低数据库压力;
- 通过 Canal 监听 MySQL binlog,在数据变更时异步通知并清理各级缓存,保证多级缓存与数据库之间的最终一致性。
通过以上技术,项目在服务治理、系统解耦、流量削峰、缓存加速与高可用等方面形成了一套完整的高并发解决方案,也串起了 SpringCloud 微服务与 Redis 缓存两大技术体系的核心知识点。