专栏首页架构师之路秒杀架构优化,产品折衷

秒杀架构优化,产品折衷

今天有朋友问我,说我的文章里,总是提“脱离业务的架构设计是耍流氓”。

每次都是架构根据业务折衷,有没有业务和产品由于技术难度太大来做折衷的?

当然有,当一个业务技术难度非常大的时候,可以通过业务和产品的优化,来简化系统架构。

以“12306车票秒杀”为例,秒杀业务架构难度大,业务和产品可以这么折衷:

case 1

一般来说,下单和支付放在同一个流程里,能够提高转化率。

对于秒杀场景,产品上,下单流程和支付流程异步,放在两个环节里,能够降低数据库写压力。

12306,下单成功后,系统占住库存,45分钟之内支付即可。

case 2

一般来说,所有用户规则相同,体验会更好。

对于秒杀场景,产品上,不同地域分时售票,虽然不是所有用户规则相同,但能够极大降低系统压力。

北京9:00开始售票,上海9:30开始售票,广州XX开始售票,能够分担系统压力。

case 3

秒杀场景,由于短时间内并发较大,系统返回较慢,用户心情十分焦急,可能会频繁点击按钮,对系统造成压力。

产品上可以优化为,一旦点击,不管系统是否返回,按钮立刻置灰,不给用户机会频繁点击。

case 4

一般来说,显示具体的库存数量,能够加强用户体验。

对于秒杀场景,产品上,只显示有/无车票,而不是显示具体票数目,能够降低缓存淘汰率。

显示库存会淘汰N次,显示有无只会淘汰1次。更多的,用户关注是否有票,而不是票有几张。

...

无论如何,产品技术运营一起,目标是一致的,把事情做好,不存在谁是甲方,谁是乙方的关系。

脱离业务的架构设计是耍流氓。

架构难度大,产品也应该折衷。

画外音:秒杀业务的架构优化讲过了,这次说产品上的优化。

兄弟,你的产品折衷了吗?或者,奇葩了吗?

欢迎分享你的故事。

本文分享自微信公众号 - 架构师之路(road5858)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 主从DB与cache一致性

    本文主要讨论这么几个问题: (1)数据库主从延时为何会导致缓存数据不一致 (2)优化思路与方案 一、需求缘起 上一篇《缓存架构设计细节二三事》中有一个小优化点,...

    架构师之路
  • 秒杀系统架构优化思路

    一、秒杀业务为什么难做 1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息); 2)微博系统,每个人读你关注的人的数据,一个人读多...

    架构师之路
  • MQ,互联网架构解耦神器

    一个架构常识:当调用方需要关心执行结果,通常使用RPC调用。 ? ret = PassportService::userAuth(name, pass); sw...

    架构师之路
  • Atcoder Beginner Contest 113 C. ID(模拟)

    题目链接:https://abc113.contest.atcoder.jp/tasks/abc113_c

    Ch_Zaqdt
  • vue-leaflet如何设置地图的Leaflet Controls样式,更改地图的缩放控件、右下角状态控件的显示隐藏

    详细参考leaflet官网:https://leafletjs.com/reference-1.3.4.html#map-option

    acoolgiser
  • 《2018企业安全威胁统一应对指南》企业安全产品名录征集开启

    在 FIT 2018 大会现场,FreeBuf 发布了《2017企业安全威胁统一应对指南》,受到厂商和用户的广泛关注。

    FB客服
  • Codeforces Round #514 (Div. 2) A. Cashier(水题)

    题目链接:http://codeforces.com/contest/1059/problem/A

    Ch_Zaqdt
  • iCDO一周数据:Facebook:要让对的人看到对的广告;互联网平均年薪超20万

    10 月31日早间消息,Facebook发布了截至9月30日的2018财年第三季度未经审计财报。报告显示,Facebook第三季度营收为137.27亿美元,比去...

    iCDO互联网数据官
  • java高并发系列 - 第32天:高并发中计数器的实现方式有哪些?

    我们使用4种方式实现,看一下其性能,然后引出为什么需要使用LongAdder、LongAccumulator。

    路人甲Java
  • 【OpenCV入门之十六】多种方式模糊图像

    其中:f()表示一副图像,i、j表示图像的行和列,h(k,l)表示卷积算子(和)(也可以叫掩膜),k l又可以叫窗口大小(掩膜的大小,比如3*3),g()表示输...

    小白学视觉

扫码关注云+社区

领取腾讯云代金券