How bootsrc/jseckill works
jseckill is a Spring Boot flash-sale website. Users browse sale items, obtain a time-limited sale URL, submit a purchase, and poll for its outcome. The documented high-concurrency path rate-limits requests, queues eligible attempts through RabbitMQ, and processes inventory in Redis; successful purchases are then persisted with MySQL transactions. The map also shows the catalog/cache and web-client branches. Some implementation details are unsampled, so uncertain subsystem links are omitted; the README says Zookeeper is not currently used.
Main entry points: SeckillServiceImpl.java Sale service · SeckillController.java Web controllers · MQProducer.java Message producer · MQChannelManager.java Channel manager
Components 17
Web experience
- Sale pages and client
jseckill-backend/src/main/resources/static/js/seckill.js - Web controllers
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/controller/SeckillController.java
Sale workflow
- Sale service
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/service/impl/SeckillServiceImpl.java - Request limiter
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/service/impl/AccessLimitServiceImpl.java - Sale data and states
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/entity/Seckill.java - Sale message
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/dto/SeckillMsgBody.java
Queue processing
- Message producer
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/mq/MQProducer.java - Channel manager
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/mq/MQChannelManager.java - RabbitMQ queue
- Queue consumer
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/mq/MQConsumer.java
Inventory and orders
- Redis access
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/dao/cache/RedisDAO.java - Redis
- Sale and order DAOs
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/dao/PayOrderDAO.java - MySQL
sql/pay_order.sql - Sale catalog DAO
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/dao/SeckillDAO.java
Runtime integrations
- Service configuration
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/bean/MQConfigBean.java
Other components
- Shopper
Connections 21
- Shopper → Sale pages and client: browses and submits
README.md - Sale pages and client → Web controllers: requests and polls
README.md - Web controllers → Sale service: delegates sale actions
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/controller/SeckillController.java - Sale service → Request limiter: checks rate limit
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/service/impl/SeckillServiceImpl.java - Sale service → Redis access: reads and caches catalog
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/service/impl/SeckillServiceImpl.java - Sale service → Message producer: enqueues attempt
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/service/impl/SeckillServiceImpl.java - Sale service → Sale and order DAOs: persists purchase
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/service/impl/SeckillServiceImpl.java - Message producer → Channel manager: gets send channel
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/mq/MQProducer.java - Channel manager → Service configuration: uses queue settings
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/mq/MQChannelManager.java - Channel manager → RabbitMQ queue: declares queue
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/mq/MQChannelManager.java - Message producer → RabbitMQ queue: publishes messages
README.md - RabbitMQ queue → Queue consumer: delivers attempts
README.md - Queue consumer → Sale service: processes inventory
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/mq/MQConsumer.java - Sale service → Redis: checks and decrements stock
README.md - Redis access → Redis: reads and writes cache
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/dao/cache/RedisDAO.java - Sale and order DAOs → MySQL: reads and writes orders
README.md - Sale service → Sale catalog DAO: loads sale records
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/service/impl/SeckillServiceImpl.java - Sale catalog DAO → MySQL: queries catalog
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/dao/SeckillDAO.java - Web controllers → Sale data and states: returns sale results
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/controller/SeckillController.java - Sale service → Sale message: builds queued message
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/service/impl/SeckillServiceImpl.java - Queue consumer → Sale message: parses message
jseckill-backend/src/main/java/com/liushaoming/jseckill/backend/mq/MQConsumer.java