IT资讯 Apache ShenYu(incubating) 发布 2.4.3,异步高性能跨语言响应式 API 网关

bertram · 2022-04-19 10:00:06 · 热度: 21

Apache ShenYu(incubating) 发布2.4.3

刘艺,肖宇 Apache ShenYu

Release Manager

刘艺  /  Apache ShenYu PPMC

时隔3个月,Apache ShenYu再次发布2.4.3版本,本次版本内容,有200+的pull Request,30+的贡献者参与,新增了非常多的功能,修复了很多bug,以及优化了很多内容

Vol .1  新增功能

  • 增加 Http 注册客户端的重试机制。
  • 支持 Content-Type 类型为 octet-stream。
  • 支持 Bootstrap 的URIs 的重定向。
  • 增加本地 API 授权。
  • 支持配置 Dubbo消费者线程池大小。
  • 支持 Divide 插件的失败重试机制。
  • 支持 Webscoket 的客户端配置。
  • 支持 MemoryLimitedLinkedBlockingQueue。
  • 支持 Alibaba Dubbo 插件共享线程池。
  • 支持 gRPC 插件共享线程池。
  • 增加 Metrics 插件。
  • 增加 Cache 插件。
  • 增加 Logging RocketMQ 插件。

Vol .2 优化项

  • 更新 JUnit4 为 JUnit5。
  • 优化 password encryption。
  • 优化和校验 shenyu-admin 模块的接口参数。
  • 优化同步数据时,初始化数据的代码。
  • 增加 LoggingRocketMQ 插件的集成测试。
  • 在 ScheduledExecutorService 类中使用定时轮算法。
  • 重构admin 中注册 URI 的 buildHandle 方法。
  • 优化 Spring Cloud 客户端自动设置端口。
  • 重构 JWT 插件支持多等级 Tokens。
  • 优化网关netty参数自定义可配置

Vol .3 Fix Bug

  • 修复 CommonUpstreamUtils 类初始化时的空指针异常。
  • 修复 Nacos 注册失败时进行判断。
  • 修复登录未注册用户时的空指针异常。
  • 修复重复打印启动日志的问题。
  • 修复重试次数,超时时间不生效的问题。
  • 修复 Token 解析报错的问题。
  • 修复 Websocket 传输大数据异常的问题。
  • 修复 NettyHttpClient 插件在失败时未重试的问题。
  • 修复 CVE-2021-41303 漏洞。
  • 修复判断所有插件包含条件不生效的问题。
  • 修复 Http Headers 丢失数据的问题。
  • 修复 Rewrite 插件不支持 URL 占位符的问题。
  • 修复 Nacos 同步数据异常的问题。
  • 修复当 ContextPath 插件打开时,Websocket 代理失败或者空指针异常的问题。
  • 修复 Http 注册客户端的端口占用检查。

Vol .4  移除项

  • 移除 Monitor 插件。
  • 移除 shenyu-agent 模块。

Vol .5  Metrics 插件使用说明

Metrics 插件 插件是网关用来监控自身运行状态(JVM 相关),请求的响应迟延,QPS、TPS等相关 metrics。

 

插件的使用

  • 在网关的 pom.xml 文件中添加 metrics 的依赖。

<dependency>    <groupId>org.apache.shenyugroupId>    <artifactId>shenyu-spring-boot-starter-plugin-metricsartifactId>    <version>${project.version}version><dependency>
  • 在网关的配置 yaml 文件中编辑如下内容

shenyu:  metrics:    enabled: false  #设置为 true 表示开启    name : prometheus     host: 127.0.0.1 #暴露的ip    port: 8090 #暴露的端口    jmxConfig: #jmx配置    props:      jvm_enabled: true #开启jvm的监控指标

具体 Metrics 的指标信息可查看官网说明:https://shenyu.apache.org/zh/docs/plugin-center/observability/metrics-plugin

Vol .5  Cache 插件使用说明

Cache 插件能够缓存目标服务的结果,还可以允许用户配置缓存结果失效时间

                                                                                                           插件的使用

  • 在网关的 pom.xml 文件中添加 Cache 的依赖。

<dependency>
    <groupId>org.apache.shenyu</groupId>
    <artifactId>shenyu-spring-boot-starter-plugin-cache</artifactId>
    <version>${project.version}</version></dependency>
  • 数据不会频繁更新,而且需要大量调用的场景。

  • 对于数据一致性要求不高的场景。

Vol .5  Logging RocketMQ 插件使用说明

Apache ShenYu 网关接收客户端请求,向服务端转发请求,并将服务端结果返回给客户端.网关可以记录下每次请求对应的详细信息,  

列如:请求时间、请求参数、请求路径、响应结果、响应状态码、耗时、上游IP、异常信息等待.  

Logging-RocketMQ 插件便是记录访问日志并将访问日志发送到 RocketMQ 集群的插件.

 

插件的使用

在网关的 pom.xml 文件中添加依赖。

<dependency>
    <groupId>org.apache.shenyu</groupId>
    <artifactId>shenyu-spring-boot-starter-plugin-logging-rocketmq</artifactId>
    <version>${project.version}</version></dependency>

 具体 配置以及各个参数的作用等信息可查看官网说明:https://shenyu.apache.org/zh/docs/plugin-center/observability/logging-rocketmq

 

下个版本规划

 

Features

新增集群方案

新增shenyu-proxy模块,支持ShenYu的集群模式,以及网关的动态扩缩容

新增shenyu-nginx子项目,对接Nginx-upstream模块

新增多语言SDK

多语言的SDK主要是为了让其他类型的语言快速的接入shenyu网关

https://github.com/apache/incubator-shenyu-client-donet

https://github.com/apache/incubator-shenyu-client-golang

https://github.com/apache/incubator-shenyu-client-python

新增Helm的支持

                                 Apache ShenYu(incubating) 发布 2.4.3,异步高性能跨语言响应式 API 网关

 

加入我们

  Apache ShenYu是一款多协议,插件化,高性能的API网关,于2021年5月加入Apache 孵化器

如何贡献

https://shenyu.apache.org/zh/community/contributor-guide

                            

 

猜你喜欢:
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册