Apache ShenYu(incubating) 发布 2.4.1

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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/165937/shenyu-2-4-1-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。