Skip to content

A high concurrency project which using redis, rabbitMQ and Jemter tool

Notifications You must be signed in to change notification settings

Jools-hzx/HZX-High-Concurrency-Project001

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

秒杀系统高并发解决方案

项目简介

本项目是一个高并发秒杀系统,旨在解决高并发场景下的读写操作和系统性能瓶颈。通过多种技术栈的结合,优化系统的并发处理能力,并确保数据的一致性和系统的高可用性。

技术栈

  • Spring Boot: 用于构建基础应用框架
  • MySQL: 数据存储
  • Redis: 缓存和分布式锁
  • RabbitMQ: 消息队列,实现异步处理
  • MyBatis-Plus: 数据库持久层框架
  • Maven: 项目构建和依赖管理
  • Linux: 部署环境
  • JMeter: 压力测试工具

项目目标

  1. 高并发读写优化

    • 减少用户直接访问数据库的频率
    • 使用缓存和异步处理减少数据库负载
  2. 保护措施

    • 针对意外情况设计兜底方案,防止最坏情况发生
  3. 高可用性

    • 系统在流量符合预期时稳定运行,确保秒杀活动顺利完成
  4. 数据一致性

    • 确保库存准确,防止超卖或少卖
  5. 高性能

    • 优化系统性能,支持大流量请求

项目结构

seckill
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── hzx
│   │   │           └── seckill
│   │   │               ├── config
│   │   │               ├── controller
│   │   │               ├── mapper
│   │   │               ├── pojo
│   │   │               ├── rabbitmq
│   │   │               ├── service
│   │   │               └── util
│   │   ├── resources
│   │   │   ├── mapper
│   │   │   └── templates
│   └── test
│       └── java
│           └── com
│               └── hzx
│                   └── seckill
├── pom.xml
└── README.md

功能实现

  1. 用户登录与分布式会话

    • 使用 Redis 进行分布式 Session 共享
    • 自定义注解实现参数校验
  2. 秒杀业务逻辑

    • 商品列表及详情页展示
    • 秒杀按钮与倒计时功能
    • 秒杀订单生成与防止重复购买
  3. 性能优化

    • 页面缓存与对象缓存
    • Redis 预减库存与内存标记
  4. 消息队列与异步处理

    • 使用 RabbitMQ 实现秒杀的异步请求
    • 客户端轮询查询秒杀结果
  5. 安全防护

    • 隐藏秒杀接口地址
    • 验证码防止脚本攻击
    • 接口限流防止刷接口
  6. 压力测试

    • 使用 JMeter 进行多用户压测
    • 验证系统在高并发下的稳定性

项目优化步骤

  1. 初始实现

    • 实现基本的秒杀功能,包括商品展示、秒杀按钮和订单生成。
  2. 性能优化

    • 通过页面缓存和对象缓存减少数据库访问频率。
    • 使用 Redis 预减库存,减轻数据库压力。
  3. 异步处理

    • 引入 RabbitMQ,实现秒杀请求的异步处理,削峰填谷。
  4. 安全优化

    • 隐藏秒杀接口,防止恶意攻击。
    • 实现验证码防止脚本攻击和接口限流,增强系统安全性。

使用指南

  1. 环境配置

    • 安装并配置 MySQL、Redis 和 RabbitMQ
    • 使用 Maven 构建项目
  2. 运行项目

  3. 测试与验证

    • 使用 JMeter 进行压力测试
    • 验证系统在高并发场景下的性能和稳定性

结论

通过多种技术手段的结合和优化,本项目成功实现了高并发秒杀系统,确保了系统的高可用性和数据的一致性。通过 Redis、RabbitMQ 等技术的应用,有效减轻了数据库压力,并提高了系统的响应速度和稳定性。

About

A high concurrency project which using redis, rabbitMQ and Jemter tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published