千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

首页 视频教程 培训课程 师资团队 技术干货 常见问题 面试题 职场就业 零基础学Java 行业资讯
【热点话题】 Java技术干货 Java学习教程 Java学习笔记 Java面试题 Java培训问答 Java培训机构哪些好 Java职场就业
当前位置:Java培训  >  java学习教程  >  你了解秒杀吗?怎么设计

你了解秒杀吗?怎么设计

来源:千锋教育
发布人:wjy
时间: 2022-10-10 09:50:00 1665366600

  1. 设计难点: 并发量大,应用、数据库都承受不了。另外难控制超卖。

  2. 设计要点:

  - 将请求尽量拦截在系统上游,html尽量静态化,部署到cdn上面。按钮及时设置为不可用,禁止用户重复提交请求。

  - 设置页面缓存,针对同一个页面和uid一段时间内返回缓存页面。

  - 数据用缓存抗,不直接落到数据库。

  - 读数据的时候不做强一致性教研,写数据的时候再做。

  - 在每台物理机上也缓存商品信息等等变动不大的相关的数据

  - 像商品中的标题和描述这些本身不变的会在秒杀开始之前全量推送到秒杀机器上并一直缓存直到秒杀结束。

  - 像库存这种动态数据会采用被动失效的方式缓存一定时间(一般是数秒),失效后再去Tair缓存拉取最新的数据。 - 如果允许的话,用异步的模式,等缓存都落库之后再返回结果。

  - 如果允许的话,增加答题教研等验证措施。

你了解秒杀吗?怎么设计?

  3. 其他业务和技术保障措施:

  - 业务隔离。把秒杀做成一种营销活动,卖家要参加秒杀这种营销活动需要单独报名,从技术上来说,卖家报名后对我们来说就是已知热点,当真正开始时我们可以提前做好预热。

  - 系统隔离。系统隔离更多是运行时的隔离,可以通过分组部署的方式和另外 99% 分开。秒杀还申请了单独的域名,目的也是让请求落到不同的集群中。

  - 数据隔离。秒杀所调用的数据大部分都是热数据,比如会启用单独 cache 集群或 MySQL数据库来放热点数据,目前也是不想0.01%的数据影响另外99.99%。另外需要复习缓存穿透、雪崩等等问题,主要的流量都落在了缓存数据库上,需要针对缓存数据库的高可用作保障。

  4. 短链接生成 这个应该是比较公认的方案了:

  1. 分布式ID生成器产生ID

  2. ID转62进制字符串

  3. 记录数据库,根据业务要求确定过期时间,可以保留部分永久链接 主要难点在于分布式ID生成。鉴于短链一般没有严格递增的需求,可以使用预先分发一个号段,然后生成的方式。看了下新浪微博的短链接,8位,理论上可以保存超过200万亿对关系,具体怎么存储的还有待研究。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>
开班信息
北京校区
  • 北京校区
  • 大连校区
  • 广州校区
  • 成都校区
  • 杭州校区
  • 长沙校区
  • 合肥校区
  • 南京校区
  • 上海校区
  • 深圳校区
  • 武汉校区
  • 郑州校区
  • 西安校区
  • 青岛校区
  • 重庆校区
  • 太原校区
  • 沈阳校区
  • 南昌校区
  • 哈尔滨校区

14天品质课程免费学

10年以上业内强师带你蜕变精英

提交领取