{"repo":"weiraneve/seckillcloud","free":true,"listed":false,"github":"https://github.com/weiraneve/seckillcloud","clone":"git clone https://github.com/weiraneve/seckillcloud.git","description":"前后端分离的微服务、高并发、高可用客户端秒杀系统和后台管理系统","language":"Java","stars":65,"topics":["java","redis","seckill","springcloud","high-concurrency","microservices","rabbitmq"],"license":"MIT","category":"databases-storage","readme_excerpt":"seckillcloud 前言 项目是基于Java微服务方案的商品秒杀系统。是前后端分离的项目。前端用React完成web前端；后端为Java的Spring cloud微服务架构，客户端用flutter跨平台完成mobile端，小程序端用uniapp完成。 本项目版本迭代至1.0.9，欢迎各位多多交流。 项目的web前端与客户端 - 本项目的秒杀部分Web前端 - 本项目的后台配置部分Web前端 - 本项目的flutter客户端 - 本项目的uniapp小程序端 简介 项目采用了SpringBoot框架、SpringCloud微服务架构、SpringCloud Gateway网关技术栈、SpringCloud alibaba技术栈Nacos、SpringCloud Netflix技术栈容灾和均衡负载和Feign进行服务间的通信、 持久层MybatisPlus框架、Flyway数据库版本管理工具和多数据源处理方案、中间件缓存Redis与相关框架、SpringBoot Admin技术栈、中间件消息队列RabbitMQ等一系列技术栈， 优化项目中的消息队列与缓存与分表分库等技术，解决了秒杀系统设计与实现中，并发不安全的难题与数据库存储的瓶颈，并使用针对Redis的LUA脚本解决高并发下的商品超卖问题。微服务构架技术， 则赋予了项目需要的容灾性和可扩展性，从而完成了一个具有高并发、高可用性能的秒杀系统以及灵活配置秒杀业务与策略的秒杀系统。并且拥有秒杀业务客户端和后台管理的前端服务器，实现了前后端分离。 项目模块 因为是用微服务架构构建的项目，很多地方需要一些微服务必须的组件。下面简单介绍一些项目模块。 - cloud-gateway 微服务网关模块，使用的是SpringCloud Gateway，这里的注册中心用的是Nacos。 网关承担的角色有：请求接入，作为所有API接口服务请求的接入点，比如这里所有模块都可以用网关的端口 8205/ 加上配置文件里的路由，可以直接访问下游的模块；中介策略，实现安全、验证、路由、过滤、流控等策略等。 - cloud-monitor 监控模块，使用SpringBoot Admin 技术栈，可以用来监控和管理我们所有微服务的 Spring Boot 项目。 - cloud-common 通用模块。负责一些通用的依赖管理和一些通用代码如Redis等的复用。 - cloud-manage 后台管理系统模块。使用Feign调用mission模块的一些接口，完成商品信息的增删查改的灵活配置和订单，并且有管理者权限和对应鉴权逻辑。后端提供接口给React框架下的后台前端服务器，实现前后端分离。对应cloud-manage表。 - cloud-uaa 用户认证中心模块，统一登录，与客户注册功能。对应cloud-uaa表。 - cloud-mission 主要秒杀业务模块。React框架下的秒杀客户端前后端分离。cloud-mission模块里的test包里，有TestJmeterController类专供Jmeter压测工具测试秒杀性能。 对应cloud-mission-goods、order、seckillGoods三个表的多数据源。 图文一览 用户统一认证模块是给客户端秒杀模块提供认证功能，后台系统自己拥有独立的认证系统。项目整体的软件架构图如下。 查看商品列表、查看商品详情和生成唯一的秒杀地址都有Redis参与，而订单写入则有消息队列参与。秒杀业务的流程图如下。 使用Jmeter压力测试工具，Jmeter界面图如下 使用Jme","default_branch":null,"files":null,"tree":[],"storefront":"/r/weiraneve","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/weiraneve/seckillcloud/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}