点击上方“马蜂窝技术”,关注订阅更多优质内容
Part 1 背景
大交通业务需要对接机票、火车票、租车、接送机等业务的外部供应链,供应商的数据接口大部分通过 HTTP、HTTPS 等协议进行通信。
为了保证开发进度并支持集成测试时进行多场景支持,我们往往需要对供应商接口进行 MOCK。之前我们在开发环境和测试环境对外部接口的调用没有统一管控,无法实现调用开关,也无法对调用量进行统计和限制。
为了解决这些问题,我们设计了接入 API 资源隔离系统 JARVIS(Join Api Resource Virtual Isolation System),希望它可以像钢铁侠中的 Jarvis 一样帮我们解决资源的管控问题。
Part 2 设计原则
图形化操作,提供管理后台,对开发和测试同学的交互要友好。
对业务无侵入,无需修改业务系统代码,保证测试的代码和发布的是一致的。
业务关联,这个系统是为业务服务的,需要提供必要的业务关联性。
支持丰富的匹配规则,可以用于绝大部分使用场景。
所配即所得,管理规则可以即时生效。
请求响应可追溯,提供详细的日志记录和查询功能。
Part 3 设计与实现
整体思路
供应商资源管控系统位于内部接入网关和外部供应商接口之间,在开发和测试环境对外部供应商资源提供了全局的代理,在系统中的位置如下:
资源管控系统系统分两大部分:
Config Cente