Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ tesla Public
forked from qiangli524/tesla

Tesla is a gateway service that provides dynamic routing,waf,support spring cloud,gRPC,DUBBO and more.

License

Notifications You must be signed in to change notification settings

Weber83/tesla

Repository files navigation

English | 中文

概述

Tesla是一个基于netty的微服务API网关,可以为公司内部系统提供统一的,安全的入口服务,并通过多种可配置的插件灵活的实现自己需要的功能。

tesla由tesla-ops(tesla管理控制台)和tesla-gateway(tesla网关)两个服务组成,开发和使用人员在tesla-ops上进行服务发布和调用方接入配置。

  • 服务发布:通过在tesla-ops的API管理菜单处进行配置,可将自己的服务通过tesla-gateway发布出去,其他系统可通过tesla-gateway访问到后端服务。
  • 接入配置:外部系统想通过tesla-gateway调用已发布的服务,可通过tesla-ops的接入管理菜单处进行配置,设置访问权限等功能。

tesla还与summerframework结合,通过gateway为入口,实现了整个调用链的灰度节点选择。

功能

  • 支持Dubbo,将http请求转换为Dubbo请求
  • 支持Spring cloud 路由和直接路由
  • 支持限流、Oauth2鉴权、Jwt鉴权、自定义jar上传鉴权,准入控制,Ip黑名单、Cookie黑名单、URL黑名单,UA黑名单等规则的限制
  • 支持监控,通过micrometer在整个请求转发链的关键位置打点,可输出到influxdb,配合grafana进行可视化监控
  • 支持动态路由规则的定义
  • 支持参数裁剪及参数转换
  • 有OPS管理控制平台,维护简单
  • 不依赖于Web容器,基于Netty的开发,在性能上要比Zuul要好
  • 通过配置插件的形式支持路由时各种规则的自定义
  • 支持Docker

插件列表

  • 请求头转换插件:可对请求头和响应头进行配置化定制
  • 鉴权配置插件:支持JWT和OAUTH2鉴权和自定义Jar鉴权
  • 限流配置插件:使用分布式令牌桶的形式对每个服务进行差别化限流
  • 熔断降级配置插件:使用resilience4j来进行熔断降级,如果后端服务有异常处理,可以进行降级
  • 请求报文校验插件:采用json schema对报文体或部分报文体的格式校验
  • Groovy脚本插件:可动态在调用链中插入一段java脚本,来执行需要的逻辑
  • Mock插件:mock请求结果,配置该插件后,请求不会再转发给后端服务,根据配置好的freemarker模板直接响应给调用方
  • Rpc路由转换插件:配置将http请求转化为dubbo请求时需要的参数,如服务名,参数转化逻辑
  • Url重写插件:该插件可对Tesla请求到后端的url进行差异化配置,支持直接转发和占位符转发
  • 创建token插件:可根据响应报文内容抽取参数后生成JWT
  • 执行上传jar包插件:如果有特殊化的功能,当前插件体系无法满足时,可以使用该插件自己编写逻辑
  • 查询聚合插件:该插件可实现调用方一次查询,聚合多个后端接口数据的效果
  • 消除鉴权插件:该插件用于当API的鉴权类型不是开放时,但个别endpoint不希望鉴权时使用,如/login,/logout等
  • 缓存结果插件:该插件可根据配置缓存请求结果
  • 请求报文转换插件:该插件根据配置的freemarker脚本对请求体和响应体的报文进行转换

具体插件使用方法请参考PDF文档

关于性能

https://www.jianshu.com/p/d07c6eceff05

使用说明

 sh install-all.sh
  • 在根目录下运行,成功如下图
docker-compose up -d

avatar

  • 访问ops控制台,默认管理员账号密码:admin/Password@1,进行规则的配置 http://localhost:8080

avatar

About

Tesla is a gateway service that provides dynamic routing,waf,support spring cloud,gRPC,DUBBO and more.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 79.7%
  • TSQL 20.3%

AltStyle によって変換されたページ (->オリジナル) /