Shenyu网关是使用Java WebFlux编写的响应式API网关,具有异步高性能以及可跨语言的特点。其主要特点如下:
- 支持HTTP、Dubbo、 Spring Cloud、 gRPC、 Motan、 Sofa、 Tars 等协议
- 采用插件化设计思想,插件热插拔,易扩展
- 灵活的流量筛选,能满足各种流量控制
- 内置鉴权、限流、熔断、防火墙等插件
- 流量配置动态化,性能极高
- 支持集群部署,支持A/B测试、蓝绿发布
架构图:
常用插件介绍:
Divide插件:
提供流量筛选以及服务转发功能,能满足多种流量控制,通过selector选择器进行流量一次筛选,再通过rule规则进行流量二次匹配。
Sentinel插件:
用来对流量进行限流与熔断,可以对匹配的请求进行熔断和服务降级,同时提供流量控制服务,除此之外网关同时支持Hystrix,RateLimiter,Resilience4j等限流熔断策略机制。
Sign插件:
提供签名验证鉴权服务,支持使用自定义签名鉴权方法进行ak/sk签名验证。
ParamMapping/Request插件:
ParamMapping插件可以对请求体中的固定参数进行添加/删除/替换,Request插件则允许对对请求参数、请求头以及Cookie进行添加、修改、移除,可灵活适应不同业务需求。