天穹-gateway网关系列1:Tesla网关整体介绍

发布时间 2023-11-13 11:43:20作者: jqr0301

一、背景
在微服务时代,服务拆分粒度越来越细,每个微服务各自负责自己的核心功能并对外提供一系列的api接口。但随着业务的拓展,接口越来越多,也就诞生了一些问题。可以在一个地方去统一的管理这些接口吗?在涉及到鉴权这个普遍的问题时,难道需要每个微服务都实现一次吗?每个微服务都有自己的协议和代码书写风格,比如驼峰和下划线,能统一吗?

这种情况下,我们就需要api gateway来解决这些问题。

二、什么是gateway网关
API网关是一种服务,是系统的统一入口。我们可以将各个微服务公共非业务功能放在API Gateway中实现,如身份验证、监控、负载均衡、缓存等,以尽可能减少各服务的职责。API 网关将各系统对外暴露的服务聚合起来,所有要调用这些服务的系统都需要通过 API 网关进行访问,基于这种方式网关可以对 API 进行统一管控。

三、Tesla网关
Tesla是由小米效能团队开源的基于JDK19的一款高性能、易扩展的优秀的API网关平台,是小米效能团队结合小米多年大促经验沉淀而成,目前已经经历过十余次小米大促的考验,并在其中承担了流量治理的核心角色,是小米业务链中不可或缺的一环。

说到基于Java的API网关,可能很多人第一反应就是SpringCloud Gateway或者Zuul,但是Tesla网关无论在易用性、扩展性和性能方面都有非常明显的优势。

易用性:Tesla拥有可视化操作界面,同时支持配置实时更新,实时生效,极大简化学习使用成本,优化操作体验。

扩展性:Tesla通过对自定义Filter支持,尤其是Sidecar模式的动态Filter支持,给Tesla提供了强大的扩展性支持,可以满足大多数业务和项目的需求。

高性能:Tesla网关自身是基于Netty进行开发,在性能上已经拥有非常亮眼的表现。同时全面支持JDK19 的 Virtual Thread,使Tesla网关的性能和资源分配上都得到了较大的提升。