All Projects → b2stry → Seckill

b2stry / Seckill

Licence: apache-2.0
基于Spring Boot的高性能秒杀系统

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Seckill

Pdf
编程电子书,电子书,编程书籍,包括C,C#,Docker,Elasticsearch,Git,Hadoop,HeadFirst,Java,Javascript,jvm,Kafka,Linux,Maven,MongoDB,MyBatis,MySQL,Netty,Nginx,Python,RabbitMQ,Redis,Scala,Solr,Spark,Spring,SpringBoot,SpringCloud,TCPIP,Tomcat,Zookeeper,人工智能,大数据类,并发编程,数据库类,数据挖掘,新面试题,架构设计,算法系列,计算机类,设计模式,软件测试,重构优化,等更多分类
Stars: ✭ 12,009 (+6922.81%)
Mutual labels:  redis, springboot, rabbitmq
Spring Boot Quick
🌿 基于springboot的快速学习示例,整合自己遇到的开源框架,如:rabbitmq(延迟队列)、Kafka、jpa、redies、oauth2、swagger、jsp、docker、spring-batch、异常处理、日志输出、多模块开发、多环境打包、缓存cache、爬虫、jwt、GraphQL、dubbo、zookeeper和Async等等📌
Stars: ✭ 1,819 (+963.74%)
Mutual labels:  redis, springboot, rabbitmq
Fw Cloud Framework
基于springcloud全家桶开发分布式框架(支持oauth2认证授权、SSO登录、统一下单、微信公众号服务、Shardingdbc分库分表、常见服务监控、链路监控、异步日志、redis缓存等功能),实现基于Vue全家桶等前后端分离项目工程
Stars: ✭ 717 (+319.3%)
Mutual labels:  redis, springboot, rabbitmq
Javacollection
Java开源项目之「自学编程之路」:学习指南+面试指南+资源分享+技术文章
Stars: ✭ 2,957 (+1629.24%)
Mutual labels:  redis, springboot, rabbitmq
Spring Boot Examples
个人学习 SpringBoot2.x 写的一些示例程序,目前正在持续更新中.....
Stars: ✭ 159 (-7.02%)
Mutual labels:  redis, springboot, rabbitmq
Mall Swarm
mall-swarm是一套微服务商城系统,采用了 Spring Cloud Hoxton & Alibaba、Spring Boot 2.3、Oauth2、MyBatis、Docker、Elasticsearch、Kubernetes等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。文档齐全,附带全套Spring Cloud教程。
Stars: ✭ 7,874 (+4504.68%)
Mutual labels:  redis, springboot, rabbitmq
Goodskill
🐂基于springcloud +dubbo构建的模拟秒杀项目,模块化设计,集成了分库分表、elasticsearch🔍、gateway、mybatis-plus、spring-session等常用开源组件
Stars: ✭ 786 (+359.65%)
Mutual labels:  redis, springboot, rabbitmq
Mall Learning
mall学习教程,架构、业务、技术要点全方位解析。mall项目(40k+star)是一套电商系统,使用现阶段主流技术实现。涵盖了SpringBoot 2.3.0、MyBatis 3.4.6、Elasticsearch 7.6.2、RabbitMQ 3.7.15、Redis 5.0、MongoDB 4.2.5、Mysql5.7等技术,采用Docker容器化部署。
Stars: ✭ 10,236 (+5885.96%)
Mutual labels:  redis, springboot, rabbitmq
Springboot Templates
springboot和dubbo、netty的集成,redis mongodb的nosql模板, kafka rocketmq rabbit的MQ模板, solr solrcloud elasticsearch查询引擎
Stars: ✭ 100 (-41.52%)
Mutual labels:  redis, springboot, rabbitmq
Supermarket
设计精良的网上商城系统,包括前端、后端、数据库、负载均衡、数据库缓存、分库分表、读写分离、全文检索、消息队列等,使用SpringCloud框架,基于Java开发。该项目可部署到服务器上,不断完善中……
Stars: ✭ 1,278 (+647.37%)
Mutual labels:  redis, springboot, rabbitmq
Mall
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
Stars: ✭ 54,797 (+31945.03%)
Mutual labels:  redis, springboot, rabbitmq
Superman
Superman是什么:构建Java 高级开发技术的知识体系,从基础不断打怪升级成为超人之路(更新中.......)
Stars: ✭ 106 (-38.01%)
Mutual labels:  redis, springboot, rabbitmq
Zeusspring
基于Spring Boot 2.0的前后端分离的快速开发平台,此仓库是后台部分; 前台:Vue+Element 后台:Spring Boot 2.0/Spring Security/JWT/Spring Data JPA+Mybatis-Plus/Redis/分布式限流/同步锁/验证码/动态权限管理 数据权限 工作流 代码生成 日志记录 第三方社交账号、短信登录
Stars: ✭ 117 (-31.58%)
Mutual labels:  redis, springboot, rabbitmq
Enteletaor
Message Queue & Broker Injection tool
Stars: ✭ 139 (-18.71%)
Mutual labels:  redis, rabbitmq
Hippo
💨A well crafted go packages that help you build robust, reliable, maintainable microservices.
Stars: ✭ 134 (-21.64%)
Mutual labels:  redis, rabbitmq
Java Apollo
关于自己的一些学习文档和学习心得都放在这里啦!!!
Stars: ✭ 140 (-18.13%)
Mutual labels:  redis, springboot
Sns Forum Website
牛客网高级项目(SNS+社区问答类网站)
Stars: ✭ 143 (-16.37%)
Mutual labels:  redis, springboot
Echo
🦄 开源社区系统:基于 SpringBoot + MyBatis + MySQL + Redis + Kafka + Elasticsearch + Spring Security + ... 并提供详细的开发文档和配套教程。包含帖子、评论、私信、系统通知、点赞、关注、搜索、用户设置、数据统计等模块。
Stars: ✭ 129 (-24.56%)
Mutual labels:  redis, springboot
Skill6 Website Backend
java进阶开发,高级版web项目。基于dubbo实现分布式微服务架构,基于spring boot、spring mvc、mybatis、docker、ELK、redis、vue.js、node.js等技术实现的技术分享交流网站。网站名称:技术流,英文名:skill6。主要功能有:登录注册、单点登录、restful设计、文章及评论、代码及资源下载、主题讨论等。持续更新中...
Stars: ✭ 140 (-18.13%)
Mutual labels:  redis, springboot
Ketchup
ketchup (番茄酱) 是一个基于dotnet core的微服务框架。
Stars: ✭ 170 (-0.58%)
Mutual labels:  redis, rabbitmq
                                                           __   _ ____
                                           ________  _____/ /__(_) / /
                                          / ___/ _ \/ ___/ //_/ / / / 
                                         (__  )  __/ /__/ ,< / / / /  
                                        /____/\___/\___/_/|_/_/_/_/

高并发的瓶颈在数据库

测试地址:http://47.93.242.254:8088/login/to_login
登录手机号:13000000000
密码:123456
请先访问:http://47.93.242.254:8088/seckill/reset
如果响应为:
{
    code: 0,
    msg: "success",
    data: true
}
再进行登录。


减少数据库访问

思路:

  1. 系统初始化,把商品库存数量加载到Redis
  2. 收到请求,Redis预减库存,库存不足,直接返回,否则进入3
  3. 请求入队,立即返回排队中
  4. 请求出队,生成订单,减少库存
  5. 客户端轮询,是否秒杀成功


项目框架

  1. Spring Boot环境搭建
  2. 集成Thymeleaf,Result结果封装
  3. 集成Mybatis+Druid
  4. 集成Jedis+Redis安装+通用缓存Key封装

页面优化技术

  1. 页面缓存+URL缓存+对象缓存
  2. 页面静态化,前后端分离

接口优化

  1. Redis预减库存减少数据库访问
  2. 内存标记减少Redis访问
  3. RabbitMQ队列缓冲,异步下单,增强用户体验

安全优化

1.秒杀接口地址隐藏

秒杀开始之前,先去请求接口获取秒杀地址
思路:
(1) 接口改造,带上PathVariable参数
(2) 添加生成地址的接口
(3) 秒杀收到请求,先验证PathVariable

2.数学公式验证码

点击秒杀之后,先输入验证码,分散用户请求
思路:
(1) 添加生成验证码的接口
(2) 在获取秒杀路径的时候,验证验证码
(3) 使用ScriptEngine

3.接口防刷

对接口做限流
思路:

  • 用拦截器减少对业务侵入

ps:
代码是跟着慕课网实战课程《Java秒杀系统方案优化 高性能高并发实战》一步一步写的,感觉有很大的收获,推荐小伙伴们也去学习一下。
课程地址:Java秒杀系统方案优化 高性能高并发实战
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].