背景
每个公司接口都有有一些通用的设置用来保护公司接口安全、统计监控或统一功能性设置。如下图所示就是网关的用作。
网关设计
一般而言网关分为两个micro service:一个是运营后台配置界面,一个为核心转发层;产品上理解调研了阿里、腾讯等公司发现大同小异。下面就笔者所在公司的网关来说明下如何从0到1实现一个网关。
整体架构设计如下:
因为网关是性能敏感形应用,所以要求转发曾配置中心的读取使用内存型存储例如apollo、redis,其中携程提供的apollo可以用长轮询的方式和应用服务保持长连接进行主动推送和定时拉取的功能来保持配置最新。
后台配置设计如下:
核心领域实体:网关接口;对api进行的批量统一管理组; 其中开放接口能力支持检验验证或者author2.0验证(下一篇文章介绍),需要单独出来一个管理模块来进行配置管理。业务方有自定义需