写在前面
在互联网业务微服务化改造过程中,按照以往的服务治理体系,各服务需要单独实现限流、鉴权、监控、日志等通用功能,构建入口时资源申请、工单批复、多系统配置等一系列流程对精力消耗极大,学习成本较高,开发者也很难通过全局视角对各服务入口统一管理。爱奇艺微服务平台应运而生,通过组件化和服务化,助力业务解耦,不同微服务独立部署、独立扩展,保证各服务模块边界稳固,帮助业务实现微服务化改造。
作为微服务平台最重要的边界组件,爱奇艺 API 网关诞生于2016 年底,底层基于开源项目 Kong 实现,旨在为开发者提供稳定、便捷、高性能、可扩展的服务入口功能,一站式管理API 配置和生命周期,对微服务治理具有重要意义。
关于爱奇艺微服务平台API网关
▌架构总览
类似 Nginx, API 网关通过域名、请求方法、路径匹配规则等定义一个 API,API 转发目标为开发者配置的一个唯一服务。Kong 基于 Nginx 实现,成熟稳定且性能可靠,并拥有灵活强大的插件机制,提供了诸如访问控制、限流、监控等功能。在此基础上爱奇艺技术团队结合内部系统开发了私有插件,以适配内部特殊需求。
API 网关采用靠近客户端的分布式部署方案,在各地区部署独立集群并就近解析;单个 API 网关集群通过负载均衡服务暴露。API 配置需要在多个集群内维护,因此爱奇艺技术团队开发了 API 网关控制器,统一负责集群管理、域名创建、DNS 绑定等操作,整体架构如下图所示。