从我的同名码云搬过来的项目,SpringCloud微服务秒杀系统
项目描述:模拟了电商秒杀业务,采用微服务架构开发,主要实现了网关、用户、商品、订单、秒杀模块,通过压测判断系统性能。针对秒杀业务瞬间流量大的特点进行优化,尽量将请求拦截在系统上游,对多读少写的数据使用缓存,使用消息队列异步下单等方式减少对数据库的压力。
负责实现:
1、使用SpringCloud Gateway实现网关将请求经过负载均衡转发到后端微服务模块,网关层使用Sentinel实现全局限流。保护服务器。
2、用户、商品、订单、秒杀业务的微服务模块使用SpringBoot开发,均采用MVC架构,相互之间使用OpenFeign做RPC调用,实现了用户登录,商品浏览,秒杀下单的功能。
3、使用Redis实现用户、商品、订单数据对象的缓存,分布式session,秒杀时预减库存计数器,以减少对数据库访问,以及实现分布式锁。使用Seata实现减库存与下单服务间的分布式事务。
4、使用RabbitMQ实现异步下单,将请求加入队列缓冲,异步执行下单逻辑,增强用户体验,减少数据库压力,通过客户端定时轮询检查是否秒杀成功,使用数据库唯一主键保证幂等。