切流的基本逻辑
软件的架构特别是互联网的架构是一种演进的架构。存在演进就存在不同链路切流的需求。甚至可以说,切流能力是支撑软件演进的基本能力。
但是,切流往往也是高危的操作,是引起用户体验、资金安全问题的重要风险。
切流的底层逻辑非常简单。对于切流操作,一定有一个“分流点”,从唯一的分流点将流量按照 MECE 原则分成多路进行处理。所以,要保证切流的安全,就是要保证这个分流的 MECE 原则。
MECE:Mutually Exclusive Collectively Exhaustive。
这里面,往往又有两层逻辑需要考虑。
首先,对于一个请求的分流,需要做到可重复操作。这点可以叫做切流的幂等性。
其次,对于前后有依赖的分流,需要做到前后一致性。这点可以叫做切流的黏着性。
对于切流的幂等性。最简单的实现方式就是切流结果的持久化。
对于切流的黏着性。有两类实现方式:
采用相同的切流标,如 userId;
采用查询逻辑,比如根据前置 orderId 查询前置单据的切流结果。
版权声明: 本文为 InfoQ 作者【agnostic】的原创文章。
原文链接:【http://xie.infoq.cn/article/c583aed07fdb3df4538656a99】。文章转载请联系作者。
评论