一个关于设计开源API网关系统的设想

在几年的工作过程中,我经历了多个开放平台型系统,系统中存在些许不如意的瑕疵,而出于稳定考虑,大部分尽可能保持原样不再迭代改进,我的很多想法没法付诸实现,所以渐渐萌生了一个想法:设计开发一套全新的API网关,在开发过程中随时推翻原先的设计,只求能试验我的设想,同时将其开源,供其它同志参考学习。

API网关中很重要的一部分是协议转换,而大部分已开源的API网关几乎都是http->http,很少有大型互联网公司开源自己的http->rpc,更不用说”多协议->多协议”。

协议转换是最基础的功能性需求,其它的功能性需求有限流、熔断、黑白名单、日志、验签、授权、文档、SDK、调试台等。在实现基本功能的基础上,可以针对高可用、高性能进一步优化,比如全链路异步、隔离、多级缓存。