秒杀系统----热点/秒杀商品如何处理?

1.关于热点商品?

对于热点商品的话,要实时监控。你知道哪些秒杀的商品就是热点商品,但是系统它并不知道呀。多以要想办法告诉它。

对于静态热点数据:以往有两种方式

  • 卖家报名的方式,提前把热点商品筛选出来,然后通过后台系统,对这些商品进行打标,但是这也有一个弊端,就是增加卖家的使用成本,实时性太差,不灵活
  • 进行数据分析,通过技术手段提前预测,统计出排名多少的商品,然后这些排名较前的商品就是热点商品。

对于动态热点数据有以下方案:

  • 构建异步系统,使用一些本身就具备热点统计模块的中间件,例如(nginx、缓存、rpc),借助工具统计。
  • 建立一个热点上报和热点下发服务机制,主要通过交易链路上各系统之间的时间差,例如(详情页,购物车、订单、优惠、库存、物流等),一般都会是详情系统先知道,就知道哪些数据是频繁被调用的,下发到其他系统,然后把这些数据当成重点热点数据,保护起来。
  • 热点数据要接近实时(3秒内完成热点数据的发现),因为只有做到实时,才能实时的对下游系统提供保护。

6,热点数据如何处理?

**总结三点:优化、限制、隔离**

优化:不管是静态数据还是动态数据,都只是“短暂”缓存,多以把它们放入一个队列中,淘汰机制使用LRU(least recently used)页面置换算法,页面最少使用量规则解决。

限制:把被访问的热点商品做一致性hash,根据hash做分桶,每个分桶都设置一个队列,这样可以防止某些热点商品占用太多服务器资源,而使其他请求得不到服务器的处理。

隔离:将热点数据隔离出来,不要让0.1%的数据影响到其他99.9%的数据。隔离出来,也是为了优化。

实现隔离的方式?
1,把秒杀做成一种营销活动。卖家提前报名的方式,相当与可以提前知道哪些是热点数据,就可以提前预热。
2,系统隔离,系统隔离更多的是运行时隔离,可以通过分组部署的方式把热点数据和另外99%分开。
3,数据隔离:可以启用单独的cache集群或者mysql存放。


可参考:
https://blog.csdn.net/u014231523/article/details/82990269

你可能感兴趣的:(秒杀系统,秒杀商品的处理,秒杀商品优化)