怎么做家庭网站,专业精准网络营销推广,小学生做网站,护肤品 网站建设策划业务背景 公司业务现用的通道为 A、B#xff0c;为了降本#xff0c;引入新的支付通道 Y#xff0c;但 Y 通道的稳定性要低于 A、B#xff0c;系统要能在 Y 通道故障时自动切回到 A、B#xff0c;等 Y 恢复正常后#xff0c;再切换到 Y。 乍一看很简单#xff0c;不就是… 业务背景 公司业务现用的通道为 A、B为了降本引入新的支付通道 Y但 Y 通道的稳定性要低于 A、B系统要能在 Y 通道故障时自动切回到 A、B等 Y 恢复正常后再切换到 Y。 乍一看很简单不就是熔断降级、故障恢复吗有很多成熟的解决方案了。 但有个特殊的业务场景在支付通道的页面中也就是输入密码的这一步可能因为商户原因无法继续支付。这一步已经脱离了我们自己业务的页面所以也无法获知这个失败场景。 还有一个场景是到输密码这一步由于种种原因用户返回了终止了 支付流程。这种我们系统也无法获知更无法区分是商户还是用户的原因导致这笔支付没有完成。 这个业务场景很重要虽然发生的概率极低但必须要解决否则真有问题等用户反馈过来其影响是不能接受的。 调研 现成的技术方案像 Sentinel 等框架都需要告诉框架一个明确的采样规则及触发点。 比如1分钟内异常的数量、超时的数量、请求失败的数量或者调用量达到多少后触发。 由于业务场景的特殊性没找到可以直接满足业务需求的现成方案只能自己想办法解决。 方案设计 如上所述需要解决的2个关键点是采样规则和触发点。 采样规则可细分为 采样窗口、采样数量、采样数据。 根据我们业务的支付量我们确定了采样窗口为最近半小时内依次向后滑动 采样数量为走 Y 通道的全量 采样数据为支付成功数据、总数据。 上面交代了系统无法直接准确获知 Y 通道失败所以就换了解决思路。 我们可以从系统现有的 A、B 通道的数据分析出用户原因未支付的比例A、B 通道非常稳定通道导致的失败率可以忽略不计这样一来就可以得出支付成功的比例。 如果切换到 Y 通道后低于这个比例大概率是商户问题导致支付中断。 这个比例就可以作为我们的触发点。 简单画个草图 通过这个方案就可以尽早发现商户问题导致的支付中断满足业务诉求。 扯两句 用低成本满足业务诉求 任何方案都要权衡取舍。 原创不易多多关注一键三连感谢支持