1499 抢飞天茅台?可惜了,才 26 万的并发 app 就崩了!

Posted Java技术栈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1499 抢飞天茅台?可惜了,才 26 万的并发 app 就崩了!相关的知识,希望对你有一定的参考价值。

只需动动手指,一单就有1000+的暴利,搞得全体卷民跃跃欲试,抢购茅台竟成最新“财富密码”?

这到底是人性的扭曲,还是道德的沦丧.……

去年国美电商举办“1499元抢茅台”活动,没想到,活动当天国美APP系统就崩溃了,还引发了集体投诉。

据第三方投诉平台黑猫投诉数据显示,至今,标记为“国美茅台”的投诉量已近2900多条。

咳咳,扯远了,作为一个不(上)务(班)正(摸)业(鱼)的程序员,就来跟大家科普一下秒杀系统背后的技术原理。

虽然很多人可能没有抢到过秒杀商品,但秒杀场景的基本流程可以参考下图:

对于用户来说,秒杀流程可以理解为:点击购买页-选择购买-付款-订单创建成功。

当然在商品库存不足时,“抢购”过程就可能失败,秒杀系统可能遇到的项目难点主要包括:

瞬时并发量大:

由于商品优惠力度大,大量用户会在同一时间抢购,网站流量瞬间激增。

库存少:

一般都是低价限量,而访问的数量远远大于库存数量,只有极少数人成功。


业务流程简单:

流程短,立即购买,下订单,减库存。


前期预热:

对于还未开启活动的秒杀商品,以倒计时的方式显示,只能访问不能下单。

实现秒杀系统的项目难点包括:

1、如何应对瞬时大流量高并发?

这是由于服务器、数据库等能承载的QPS有限,如数据库一般是单机1000QPS。

需要根据业务预估并发量,如果有热点、爆点事件/活动导致用户大规模同时涌入,就可能造成宕机的情况。

2、有限库存,不能超卖

库存是有限的,需要精准地保证,就是卖掉了N个商品。不能超卖,当然也不能少卖了。

  • 官方库存100件,只卖出90件,被用户发现后,辞职信等着你。

  • 官方库存100件,卖出了1000件,辞职信同样在等着你。

3、稳定高可用保证

系统在高并发量的请求下要保证系统不会被打挂,抢茅台归抢茅台,其他业务不能被影响。

4、商品限购

类似于防代购,一个用户,只能购买1个或N个。

5、恶意请求

阻止恶意请求,比如使用脚本模拟用户购买,模拟出十几万个请求去抢购;爬虫恶意爬取数据。

大家在工作的时候,多多少少都会用到微服务架构,毕竟这已经是刚需了,尤其是大厂的面试。

那么你知道为什么某宝,某东秒杀的时候就不会崩吗?我建议你来了解一下这门课《承载亿万级流量的微服务架构,如何实现的?》

现在添加小姐姐,还能获取超多学习资料,大厂面试真题!

????限时免费????

前100名 0元 解锁课程

抓紧扫码报名  仅限前100名

现在添加小姐姐还能五选一

实体资料直接包邮到家!

ke

cheng

da

gang

1

秒杀抢购系统中必须规避的问题及最优解决方案!

1、高并发场景的业务漏洞,正确理解技术赋能业务。

2、如何进行高纬度思考设计,高并发秒杀系统。

3、高并发场景下秒杀超卖Bug复现

4、秒杀场景下JVM锁现场压测实战

5、高并发场景下,分布式锁思路分析

6、高并发秒杀场景下mysql分布式锁实战

7、高并发秒杀场景下Redis分布式锁实战

8、如何在双十一大促中提升分布式锁性能

9、抗住双十一流量峰值的其他方案

10、从源码级别看分布式锁如何实现

11、CAP和BASE理论在分布式场景中的应用

12、分布式锁全部代码实战压测演示

13、秒杀系统全套解决方案

2

极限并发架构中必须用的中间件及原理

1、SOA.Webservice.Dubbo.SpringCloud究竟什么是微服务?

2、单体应用向微服务异构平台架构演变

3、Eureka 微服务注册与发现

4、Actuator 微服务监控

  • RestTemplate 服务器远程调用

  • Ribbon 客户端的负载均衡

  • OpenFeign 声明式服务调用

  • Hystrix 微服务熔断.降级.资源隔离

  • HystrixDashboard

  • Zuul 微服务网关

  • Config 微服务配置中心

  • Sleuth zipkin 微服务链路追踪

5、常用中间件服务核心解密与技术选型

  • 分布式文件存储中间件 FastDFS 

  • 分布式消息中间件 RocketMQ Kafka RabbitMQ ActiveMQ

  • 分布式搜索中间件ElasticSearch

  • 分布式缓存中间件 Redis

  • 高并发高性能接入层中间件 LVS.Keepalived.nginx.Haproxy

3

如何用Redis高效实现复杂的秒杀抢购业务?

1、通过redis解决千万级并发压力架构设计

2、项目中遇到哪些问题?设计方案?秒杀?雪崩?穿透?击穿?预热?

3、无锁化,串行化,扁平化克制高并发瓶颈!

4、redis 宕机了咋办,如何做到可用性和一致性的trad off?

5、抢票,微信红包,电商详情页等高频面试问题!

6、redis持久化,主从复制,分片集群在BAT中的具体使用设计

7、redis分布式锁造成的架构压力和错误的架构设计问题

8、正确用布隆过滤器,跳表skiplist,HashMap解决并发场景问题

9、如何和面试官互动获得offer

10、学习方法和面试方法分享

11、逃避认知偏差,技术诅咒,幸存者偏差

4

超高并发下MySQL如何设计索引更高效?

1、一节课教你看懂mysql的执行计划

2、mysql索引的实现原理和数据结构

3、mysql索引设计的技巧

4、mysql聚簇索引和非聚簇索引的区别

5、mysql索引的终极调优方案

6、mysql分布式集群的设计原则

7、mysql如何实现高效的读写分离和分库分表

5

极限并发架构最优设计方案!

1、三高系统必然涉及的面试题核心讲解

2、高并发、大数据的首选解决方案

3、双十一下分布式高并发场景下的存储技术选型

4、redis、kafka、es、hbase等技术技术选型总结

5、大厂面试高频架构设计题思路

6、为什么大厂都不用主从同步

7、读写分离、业务隔离、分片集群常见的坑

8、正确用布隆过滤器,跳表skiplist,HashMap解决并发场景问题

9、mysql索引的性能问题

10、redis为什么快的多个原因

11、redis是单线程还是多线程

12、秒杀、抢票、微信红包、电商详情页等高频面试问题

今晚20:00开始直播

千人在线直播间等你

 

为什么我推荐你来听这门课?

免费领取面试必备算法资料

扫码领取左程云老师最新算法视频

(百度左神)

助你更快更稳地拿下心仪offer

扫码领取更多资料

好了,回归主题

听完这次直播课程

你会有哪些收获呢

程序员面试技巧、避坑经验

突破现阶段技术瓶颈

优化简历增加面试邀约次数

面试中如何搞定技术面、HR面

...

以上是关于1499 抢飞天茅台?可惜了,才 26 万的并发 app 就崩了!的主要内容,如果未能解决你的问题,请参考以下文章

飞天茅台超卖事故:Redis分布式锁请慎用!

Redis分布式锁引发的工作事故

P0级重大事故:Redis 分布式锁使用不当,超卖了100瓶飞天茅台!

超卖了100瓶飞天茅台!竟是因为Redis分布式锁使用不当?

因分布式锁使用不当,超卖了100瓶飞天茅台

Redis分布式锁使用不当,导致超卖了100瓶飞天茅台!!!