最近有朋友问我,说我的文章里总是提到“倒闭的架构设计是耍流氓”。每次,架构都会根据业务进行妥协。是否有任何业务和产品因技术难度而受到损害?当然,当一个业务技术非常困难的时候,可以通过业务和产品的优化来简化系统架构。以“12306票秒杀”为例。秒杀的业务架构非常难,业务和产品可以这样妥协:案例1一般来说,下单和支付放在同一个流程,可以提高转化率。对于秒杀场景,商品listing、下单流程和支付流程是异步的,放在两个环节,可以减轻数据库写入的压力。12306,下单成功后,系统占用库存,45分钟内即可付款。情况2,一般来说,所有用户的规则都是一样的,体验会更好。针对闪购场景,在产品方面,分时票在不同区域销售。虽然不是所有的用户都有相同的规则,但是可以大大减轻系统的压力。北京9:00开始售票,上海9:30开始售票,广州XX开始售票,可以分担系统压力。案例3,在闪杀场景下,由于短时间内高并发,导致系统返回缓慢,用户很着急,可能会频繁点击按钮,给系统造成压力。可以对产品进行优化,一旦点击,无论系统是否返回,按钮都会立即变灰,不会给用户频繁点击的机会。对于情况4,一般来说,展示具体库存数量可以提升用户体验。对于秒杀场景,产品上只显示有无工单,不显示工单的具体数量,可以降低缓存淘汰率。显示库存会淘汰N次,显示可用性只会淘汰1次。更多的是,用户关注的是有没有票,而不是有多少票。……不管怎么说,产品技术一起运营,目标一致,把事情做好,没有谁是甲方谁是乙方的关系,脱离业务的架构设计就是耍流氓。架构难,产品也要妥协。画外音:前面讲了秒杀业务结构的优化,这次再说说产品的优化。【本文为专栏作者《58神剑》原创稿件,转载请联系原作者】点此阅读更多该作者好文
