高并发实现思路

本文探讨了电商抢购活动中面临的高并发挑战,包括缓存问题、数据库压力和恶意请求。提出了解决方案,如使用Redis集群、数据库读写分离、Nginx负载均衡、按钮控制、限流策略、库存预热和削峰填谷等,以确保服务稳定性和用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抢购活动高并发场景*
电商网站做活动卖100个水杯,根据以往活动经验,抢100个水杯的人有10万人,用极低的价格配上短信、App的精准推送让用户尽量多的参数。Redis3、4万QPS(queries per second)还是能顶得住的,再高可能就没办法了。

  • 大量的请求进来考虑的点就非常多,缓存雪崩、缓存击穿、缓存穿透这些都可能发生,如果直接访问DB就可能导致用户体验差。
  • 超卖 活动数100个,如果超过就麻烦了
  • 恶意访问 (防止黄牛)
  • 链接暴露(F12查看源码,获取访问地址)
  • 数据库 每秒上万甚至十几万QPS直接访问数据库可能404

特点:
时间极短,瞬间用户量大。
解决办法:
服务单一职责:防止秒杀没抗住,服务挂了,也不影响其它的服务。

  1. 秒杀单独的服务,就像订订单服务、用户服务一样。使用微服务方式,分布式部署。
  2. 创建数据库也就是分库,就像订单服务对应订单库一样,秒杀创建秒杀库
  3. 创建相应的索引同进执行expain查看sql的执行计划
    秒杀链接加盐
    避免机器参加,机器可是毫秒级如果参与可能都让机器购买了。就是把URL动态化,就连写代码的人都不知道,你就通过MD5之类的加密算法的随机字符串去做url,然后通过前端代码获取url后台校验才能通过。
    Redis集群
    主从同步、读写分离 采用哨兵,开启持久化
    Nginx
    是一款高性能web服务器,并发随便几万不是问题,平时使用的tomcat只能顶几百的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值