内容简介:Apache ShenYu(Incubating) 2.4.1 正式发布 新功能 Admin管理后台开始支持PostgreSQL。 支持插件的动态加载。 新增Websocket插件。 新增请求参数加解密插件。 新增返回参数加解密插件。 支持 dubbo的灰度发布。 ...
Apache ShenYu(Incubating) 2.4.1 正式发布
新功能
- Admin管理后台开始支持PostgreSQL。
- 支持插件的动态加载。
- 新增Websocket插件。
- 新增请求参数加解密插件。
- 新增返回参数加解密插件。
- 支持 dubbo的灰度发布。
- 支持 springCloud灰度发布。
- 支持自定义crossFilter配置。
- Sign插件支持自定义动态签名算法。
- 支持 JDK8~JDK15
优化项
- 优化 admin管理后台 SQL 语句初始化。
- 优化 admin管理后台 分页查询逻辑。
- 优化dubbo异步回调的问题。
- 优化客户端注册逻辑。
- 优化全局异常处理。
- 优化Dubbo参数转换出来。
删除项
- 删除lombok依赖
- 删除mapstruct依赖
Bug fix
- 解决 JwtPlugin, 关于JsonSyntaxException的问题。
- 解决 resilience4jPlugin 配置初始化丢失的问题。
- 解决 motanPlugin, 配置初始化丢失的问题。
- 解决健康检查死锁的问题。
- 解决客户端注册失败,重试的问题。
- 解决Nacos使用默认分组的问题。
- 解决 docker 镜像启动失败的问题。
- 解决Gson转换null对象,空指针问题。
- 解决 ContextPath错误配置的问题。
- 解决客户端注册失败的问题。
- 解决元数据写入失败的问题。
- 解决 responsePlugin排序的问题。
- 解决monitor插件未初始化Metrics的问题。
配置项的更改
具体详解请查看 : https://shenyu.apache.org/zh/docs/next/user-guide/property-config/gateway-property-config
shenyu:
# httpclient:
# strategy: webClient
# connectTimeout: 45000
# readTimeout: 3000
# writeTimeout: 3000
# wiretap: false
# pool:
# type: ELASTIC
# name: proxy
# maxConnections: 16
# acquireTimeout: 45000
# proxy:
# host:
# port:
# username:
# password:
# nonProxyHostsPattern:
# ssl:
# useInsecureTrustManager: false
# trustedX509Certificates:
# handshakeTimeout:
# closeNotifyFlushTimeout:
# closeNotifyReadTimeout:
# defaultConfigurationType:
sync:
websocket:
urls: ws://localhost:9095/websocket
# zookeeper:
# url: localhost:2181
# sessionTimeout: 5000
# connectionTimeout: 2000
# http:
# url: http://localhost:9095
# nacos:
# url: localhost:8848
# namespace: 1c10d748-af86-43b9-8265-75f487d20c6c
# username:
# password:
# acm:
# enabled: false
# endpoint: acm.aliyun.com
# namespace:
# accessKey:
# secretKey:
# etcd:
# url: http://localhost:2379
# consul:
# url: http://localhost:8500
# waitTime: 1000
# watchDelay: 1000
cross:
enabled: true
allowedHeaders:
allowedMethods: "*"
allowedOrigin: "*"
allowedExpose: "*"
maxAge: "18000"
allowCredentials: true
switchConfig:
local: true
file:
enabled: true
maxSize : 10
exclude:
enabled: false
paths:
- /favicon.ico
extPlugin:
path:
enabled: true
threads: 1
scheduleTime: 300
scheduleDelay: 30
scheduler:
enabled: false
type: fixed
threads: 16
upstreamCheck:
enabled: false
timeout: 3000
healthyThreshold: 1
unhealthyThreshold: 1
interval: 5000
printEnabled: true
printInterval: 60000
Webscoket插件使用
Apache ShenYu
网关通过Websocket
插件实现了对websocket
代理的支持。
环境准备
需要在基础配置->
插件管理中,把websocket
插件设置为开启。
在网关的 pom.xml
文件中引入websocket
插件的相关依赖:
<!--if you use http proxy start this-->
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-plugin-websocket</artifactId>
<version>${project.version}</version>
</dependency>
请求方式
使用 Apache ShenYu 代理websocket的时候,只需要使用ws协议开头,后面路径为真实Websocket路径:
ws://localhost:9195/xxx
CryptorRequest 插件使用
cryptorRequest
插件是通过 fieldNames
去匹配 requestBody
里面的参数进行 解密
处理,替换当前 requestBody
内容。防互联网黑产,恶意获取数据。提高数据安全性。
插件使用
具体使用请参考 : https://shenyu.apache.org/zh/docs/next/plugin-center/authority-and-certification/cryptor-request-plugin/
-
在
shenyu-admin
--> 基础配置 --> 插件管理 -->cryptor_request
设置为开启。 -
在网关的
pom.xml
文件中添加cryptorRequest
的支持。
<!-- apache shenyu Cryptor Request plugin start-->
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-plugin-cryptor</artifactId>
<version>${project.version}</version>
</dependency>
<!-- apache shenyu Cryptor Request plugin end-->
CryptorResponse 插件使用
CryptorResponse
插件是通过 fieldNames
去匹配 responseBody
里面的参数进行 加密
处理,替换当前 fieldNames
对应内容。防互联网黑产,恶意获取数据。提高数据安全性。
插件使用
具体使用请参考 : https://shenyu.apache.org/zh/docs/next/plugin-center/authority-and-certification/cryptor-response-plugin
-
在
shenyu-admin
--> 基础配置 --> 插件管理 -->cryptor_response
设置为开启 -
在网关的
pom.xml
文件中添加cryptorResponse
的支持。
<!-- apache shenyu Cryptor Response plugin start-->
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-plugin-cryptor</artifactId>
<version>${project.version}</version>
</dependency>
<!-- apache shenyu Cryptor Response plugin end-->
插件动态加载
-
当用户自定义扩展插件时候,可以使用此功能。扩展
ShenyuPlugin
,PluginDataHandler
, 不用成为spring bean
。只需要构建出扩展项目的jar包即可。 -
使用以下配置:
shenyu:
extPlugin:
path: //加载扩展插件jar包路径
enabled: true //是否开启
threads: 1 //加载插件线程数量
scheduleTime: 300 //间隔时间(单位:秒)
scheduleDelay: 30 //网关启动后延迟多久加载(单位:秒)
插件加载路径详解
-
此路径是为存放扩展插件jar包的目录。
-
可以使用
-Dplugin-ext=xxxx
指定,也可以使用shenyu.extPlugin.path
配置文件指定,如果都没配置,默认会加载网关启动路径下的ext-lib
目录。 -
优先级 :
-Dplugin-ext=xxxx
>shenyu.extPlugin.path
>ext-lib(default)
灰度发布
- dubbo灰度发布请查看:
https://shenyu.apache.org/zh/docs/next/plugin-center/proxy/dubbo-plugin
- springCloud灰度发布请查看:
https://shenyu.apache.org/zh/docs/next/plugin-center/proxy/spring-cloud-plugin
下个版本规划
-
GRPC,Tars,Sofa,Motan灰度发布的支持
-
MQTT协议的支持。
-
其他插件的增强。
-
新增Agent模块,提供网关Tracing的功能
关于Apache ShenYu
高性能,多协议,易扩展,响应式的API网关。于2021年5月进入Apache基金会进行孵化。
官网地址:https://shenyu.apache.org
Gitee地址 : https://gitee.com/Apache-ShenYu/incubator-shenyu
Github地址:https://github.com/apache/incubator-shenyu
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- NPM包(模块)发布、更新、撤销发布
- 有赞灰度发布与蓝绿发布实践
- 【重磅发布】Linkis 0.10.0 版本发布
- BeetlSQL 3.0.9 发布,Idea 插件发布
- 贝密游戏 0.7.0 发布,发布斗地主
- 【重磅发布】DataSphere Studio 0.9.0 版本发布
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Starfish and the Spider
Ori Brafman、Rod A. Beckstrom / Portfolio Hardcover / 2006-10-05 / USD 24.95
Understanding the amazing force that links some of today's most successful companies If you cut off a spider's leg, it's crippled; if you cut off its head, it dies. But if you cut off a st......一起来看看 《The Starfish and the Spider》 这本书的介绍吧!