美文网首页
编程 || 秒杀

编程 || 秒杀

作者: 快语 | 来源:发表于2022-11-04 21:21 被阅读0次

对于秒杀还是心存敬畏的,一直都觉得很牛逼,又没机会深入接触。
不过,确实也经历过一些对性能要求较高的场景,当然,那毕竟不是秒杀。
第一个就是微信信息流投放,少于30w的qps的公司就不要去找它投放,后来咋搞的,没咋搞,就是堆了非常多的机器,代码几乎没改。过程中要用多少硬件支撑就是它最大的问题。另一个问题是它的所有硬件,都是另起一套。这个投放简单的原因,主要就是它是在读。仅仅是读,就容易很多。
第二个场景是对码,但对码的优化非常基于业务特点,能优化出来也是有点侥幸的。是用了几个方法,第一是多线程并行来对码,第二是合并同类项,第三是热点的多重缓存,第四是搜索引擎替代数据库。回想起来也是比较通用的方式。
第三个场景是营销活动,也很容易,就是上了消息队列,避免顺时的高并发。

那后来也学了一些课程讲电商的秒杀的。多少了解了一些思路,用自己的话来总结一下。

第一是要区分好读和写。读都好办,有各种缓存,比如cdn、redis、localcache。写比较麻烦,特别是强一致性地减库存。

第二是有个请求漏斗。有一些请求可能是不合格的,比如人是要做一些验证码的校验的,如果短于1s,就是有问题的,可能是机器人,就要屏蔽掉它。

第三是Jvm层有一些极致优化的方法。比如让RPC调用变成本地调用,这有一些特殊的工具做到,这就减少了序列化的开销。还有当然也可以用一下多线程,但线程的数量其实是要计算的,要看是io密集还是运算密集,io密集就可以多点线程,最后通过压测来计算得出。还有是不用mvc框架而直接用servelt,少了一些框架自然也少了一些性能开销。

第四是借助缓存或消息队列。缓存不必说,哪能缓就都缓上。消息队列就是通过排队的方式,一点点的消化请求。这可以避免请求太多,系统直接就宕机了。于是可以让系统尽量保持在吞吐效果最高的状态。

第五是减库存强一致性的关键问题。这个逃不开必须由数据库做。那同样是通过应用层和数据库层的排队的方式来减少瞬时的并发。瞬时并发高了,整体吞吐就会差的。

第六是兜底。降级、限流、拒绝服务。依次去设置即可。

相关文章

  • 编程 || 秒杀

    对于秒杀还是心存敬畏的,一直都觉得很牛逼,又没机会深入接触。不过,确实也经历过一些对性能要求较高的场景,当然,那毕...

  • 转载: 详解:淘宝大秒杀系统是如何设计的?

    转载: 详解:淘宝大秒杀系统是如何设计的? 作者:小刀爱编程 链接: https://my.oschina.net...

  • java锁的概念

    参考文档探究分布式并发锁并发编程-锁的发展和主流分布式锁比较总结从构建分布式秒杀系统聊聊分布式锁探索并发编程(六)...

  • 秒杀系统架构分析、设计、原理书目录

    秒杀系统架构分析、设计、原理 秒杀业务分析 秒杀技术挑战 秒杀架构原则 秒杀架构设计 大并发带来的挑战 作弊的手段...

  • SSM实现高并发秒杀功能之DAO层

    一、该秒杀实现哪些功能 1.列出秒杀的商品2.秒杀接口的暴露(到了秒杀的时间,把秒杀的地址暴露出来)3.执行秒杀4...

  • 12-场景

    1、秒杀场景 应对策略: 1)秒杀系统独立部署 2)秒杀商品页面静态化 3)租借秒杀活动带宽(将秒杀页面缓存到CD...

  • 秒杀让人无法拒接?

    建立我们需要的鱼塘 第一个就是秒杀 秒杀是不是出现这种情况 秒杀成交率不高? 秒杀不留电话? 秒杀完了下次不来? ...

  • redis实现秒杀

    秒杀活动内容实现简单的秒杀页面(显示当前秒杀活动状态)和秒杀接口,不需要考虑下订单和退货流程。秒杀接口要求时间到了...

  • redis实现秒杀抢购

    秒杀订单提前写入 秒杀抢购取出

  • 【秒杀系统】从零开始打造简易秒杀系统(一):防止超卖

    秒杀系统 秒杀系统介绍 秒杀系统相信网上已经介绍了很多了,我也不想黏贴很多定义过来了。 废话少说,秒杀系统主要应用...

网友评论

      本文标题:编程 || 秒杀

      本文链接:https://www.haomeiwen.com/subject/sbyutdtx.html