All Projects → spring-avengers → Tesla

spring-avengers / Tesla

Licence: apache-2.0
Tesla is a gateway service that provides dynamic routing,waf,support spring cloud,gRPC,DUBBO and more.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Tesla

Brpc Java
Java implementation for Baidu RPC, multi-protocol & high performance RPC.
Stars: ✭ 647 (+301.86%)
Mutual labels:  grpc, dubbo, spring-cloud, high-performance
Xproxy
reverse proxy implement in java
Stars: ✭ 20 (-87.58%)
Mutual labels:  high-performance, gateway, netty4
Dubbo Go Pixiu
Based on the proxy gateway service of dubbo-go, it solves the problem that the external protocol calls the internal Dubbo cluster. At present, it supports HTTP and gRPC[developing].
Stars: ✭ 124 (-22.98%)
Mutual labels:  grpc, dubbo, gateway
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+2006.83%)
Mutual labels:  grpc, gateway, http-server
Xc Spring Cloud Alibaba
spring cloud alibaba(2.2.1最新版)+nacos+dubbo+gateWay+sentinel+rocketmq+(pgsql/mysql8.0的json支持)+ignite集成可用于docker分布式框架+分布式自动化任务+mybatis多数据源+seate+ shardingSphere分布式分库事务解决方案
Stars: ✭ 131 (-18.63%)
Mutual labels:  dubbo, spring-cloud, gateway
Joyrpc
high-performance, high-extensibility Java rpc framework.
Stars: ✭ 290 (+80.12%)
Mutual labels:  grpc, dubbo, high-performance
Spring Boot Examples
🥗​ Spring/SpringBoot/SpringCloud 实践学习案例,从入门到精通,持续更新中,欢迎交流学习🍺 !
Stars: ✭ 110 (-31.68%)
Mutual labels:  spring-cloud, gateway
Id Generator
id-generator部署即使用的ID生成器, 支持HTTP、Dubbo、Spring Cloud方式.
Stars: ✭ 112 (-30.43%)
Mutual labels:  dubbo, spring-cloud
Tlog
Lightweight distributed log label tracking framwork
Stars: ✭ 115 (-28.57%)
Mutual labels:  dubbo, spring-cloud
Spring Cloud Dubbo Together
Spring Cloud与Dubbo共存方案
Stars: ✭ 155 (-3.73%)
Mutual labels:  dubbo, spring-cloud
Mofuw
mofuw is *MO*re *F*aster, *U*ltra minimal *W*ebserver.
Stars: ✭ 107 (-33.54%)
Mutual labels:  high-performance, http-server
Bytetcc Sample
Stars: ✭ 119 (-26.09%)
Mutual labels:  dubbo, spring-cloud
Go Proto Gql
Protobuff plugins for generating graphql schema and golang to graphql bindings. Also supports a graphql gateway (Alpha)
Stars: ✭ 127 (-21.12%)
Mutual labels:  grpc, gateway
Tesla
Tesla is a gateway service that provides dynamic routing,waf,support spring cloud,gRPC,DUBBO and more.
Stars: ✭ 109 (-32.3%)
Mutual labels:  grpc, dubbo
Springboot Labs
一个涵盖六个专栏:Spring Boot 2.X、Spring Cloud、Spring Cloud Alibaba、Dubbo、分布式消息队列、分布式事务的仓库。希望胖友小手一抖,右上角来个 Star,感恩 1024
Stars: ✭ 12,804 (+7852.8%)
Mutual labels:  dubbo, spring-cloud
Rpc Framework Tutorials
Java分布式RPC服务框架教程,包括 Dubbo/Dubbox, Motan, gRPC.
Stars: ✭ 114 (-29.19%)
Mutual labels:  grpc, dubbo
Netty Rest
Yet another high performance REST server based on Netty
Stars: ✭ 107 (-33.54%)
Mutual labels:  high-performance, http-server
Wotrd Cloud
基于nacos包含网关、认证授权、服务注册、发现、断路降级、限流、配置中心、分库分表等基础组件
Stars: ✭ 135 (-16.15%)
Mutual labels:  spring-cloud, gateway
Grpc Spring Boot Starter
Spring Boot starter module for gRPC framework.
Stars: ✭ 1,829 (+1036.02%)
Mutual labels:  grpc, spring-cloud
Grpc Spring Boot Starter
Spring Boot starter module for gRPC framework.
Stars: ✭ 2,190 (+1260.25%)
Mutual labels:  grpc, spring-cloud

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

avatar

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].