V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  homjay  ›  全部回复第 1 页 / 共 1 页
回复总数  1
小白总结了下,大佬们是这个意思吗

1:
场景:秒杀系统(新起专门处理秒杀请求的服务,独立部署,减少对主站的影响)
流程:前端 -> 网关(nginx) -> 后端 -> 缓存(redis) -> 数据库(mysql)
原则:
1 、限流:前端选择性向后端发送真正请求(根据时间戳取余,用户会多次点击)、nginx (网关限流 1 分钟最多请求 10000 次)
2 、过程:
1 、2024-07-15 12:00 开启秒杀活动
2 、2024-07-15 11:30 秒杀服务从 mysql 读取数据,写入到 redis 缓存(预热准备)
3 、2024-07-15 12:00 时间到达
4 、(小王)请求发送 -> 后端判断用户是否符合参加活动 -> 开启 redis 锁 -> 从 redis 读取数据 -> 实现业务逻辑(库存相减...) -> 更新 reids 里面的值
5 、秒杀活动持续 1 分钟
6 、2024-07-15 12:01 时间结束
7 、2024-07-15 12:01 将 redis 数据回写到 mysql

2:
线上 Redis 内存满了,应该如何处理?
方案:
1 、判断是否有未设置过期时间(TTL)的 key
2 、内存淘汰策略
3 、添加监控


3:
你认为解决高并发问题的本质是什么
本质:
1 、系统同时处理大量请求,确保响应时间可接受且系统资源不被耗尽
方案:
1 、系统同时处理大量请求 => 减少请求(限流)
2 、系统资源不被耗尽 => 加强系统资源 => 花钱升级服务器
3 、系统资源不被耗尽 => 耗时的任务 => 减少耗时时间 => (旁路缓存,不经常更新数据,原来从 mysql 读取,优化为从 redis 读取)
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4201 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 01:04 · PVG 09:04 · LAX 18:04 · JFK 21:04
Developed with CodeLauncher
♥ Do have faith in what you're doing.