java代码实现灰度发布测试调新接口、旧接口的简单实现方案
背景:
最近给我安排了一个任务,信贷系统这边提供一个接口给前端调用,该接口做开关和流量控制。开关关闭的时候,调旧风控接口,同时以一定流量阈值的概率调新风控接口,但是都是以旧的风控接口的返回内容给前端的,风控那边做新旧接口跑出来的授信额度是否一致的对比,分析线上新的风控接口能不能使用,同时不影响现有的逻辑。当验证新的风控接口没问题了,就把开关打开,并且流量阈值加大,并且如果调旧的风控接口,那么以旧的风控接口的返回内容返回给前端。如果调新的风控接口,那么就以新的风控接口返回内容返回给前端。
设计:
我在数据库表里弄了个参数配置表,把开关、流量阈值配置好了,然后把这个表的数据加载到缓存里,然后在信贷的接口里每次从缓存获取开关、流量阈值,然后写了一个java的随机生成1-100的数字,当我的流量阈值为20时,如果我随机生成的数字是1-20,小于等于该阈值,所以路由到新的风控接口。做了一个类似概率的控制,没有做到准确的计算器,多少个路由到新的,多少个路由到旧的。解决了这种无聊需求。
代码贴图如下: