shenyu v2.6.0¶
```markdown
2.6.0¶
新功能¶
- 支持 shenyu-admin 暴露 prometheus 指标
- 添加 shenyu 一级缓存和二级缓存
- 保存扩展插件 jar 到 shenyu admin
- 支持 shenyu 上传插件在网关中热加载
- 支持 apollo 同步数据和注册数据
- 初始化客户端信息收集
- 支持 shenyu 客户端 spring-boot-client 自动配置
- 添加 TCP 插件
- 超级管理员强制更改密码
- Spring-mvc(boot) 客户端支持收集 api-meta
- 添加 zookeeper 发现同步
- 初始化 Shenyu ingress 控制器
- 添加发现上游和代理选择器代理
- 暴露 shenyu actuator 端点
- 添加 naocs 发现同步
- 添加 apollo 发现同步
- 添加 HttpLongPolling 发现同步
- 添加 consul 发现同步
- 添加华为云 lts 日志插件
- 支持 shenyu admin 使用 openGauss 数据库
- 支持 polaris 配置同步和注册中心
API 变更¶
增强¶
- 为 shenyu api 文档客户端添加标签
- 添加 brpc 集成测试
- Brpc 支持共享线程池
- 为加密请求和响应插件添加 mapType
- 加密插件支持多字段名称
- 添加 p2c 负载均衡器
- 将插件 jar 修改为 Base64 字符串
- 添加最短响应负载均衡器
- 添加哈希负载均衡器测试用例
- 添加 DetailService 测试用例
- 容忍 shenyu 的路径斜杠
- 添加 shenyu-common 枚举测试用例
- 添加 shenyu-common dto 测试用例
- 添加 shenyu-admin 模型测试用例
- 添加 shenyu 匹配缓存测试用例
- 支持 k8s 探针
- 添加 shenyu-admin 服务测试用例
- 在 api 文档中添加文档 json 数据
- mock 插件中的 SPEL 默认是安全的
- 添加 ShenyuClientApiDocExecutorSubscriber 测试用例
- 添加 shenyu-client-sofa 模块测试用例
- 为 shenyu api 文档添加标签关系
- 支持 shenyu admin 和 bootstrap 服务在 Windows 上停止脚本
- 添加 ShenyuSdkClientFactory 测试用例
- 为 e2e-springcloud 添加 websocket 同步方法
- 支持 divide 插件主动下线
- 添加 springcloud 服务实例缓存
- 更改密码支持国际化
- 为 shenyu 发现添加 websocket 同步
- 更新 springboot 到 2.7.13
- 为 e2e-spring-cloud 添加其他同步方法
- 为 api 文档客户端生成的注解属性添加
- 更新 zookeeper 客户端注册库主动下线
- 更新 apollo 客户端注册库主动下线
- 将 swagger 类型 API 文档的存储从本地缓存调整为数据库
- 支持 nacos 客户端下线
- 添加 e2e alibaba dubbo 测试用例
- 添加 e2e apache dubbo 测试用例
- 添加 shenyu-spring-sdk 测试用例
- 添加 e2e sofa 测试用例
- 添加 apollo 配置同步测试用例
- 添加数据库连接池
- 为 shenyu 项目添加 idea 图标
重构¶
- 优化 shenyu-admin
- 重构最少活跃负载均衡算法
- 优化 sign-plugin 的版本一
- 优化上游检查服务
- 解决 shenyu 项目的全局版本
- 重构 ShenyuConsulConfigWatch 代码
- 重构 shenyu trie 代码
- 保存时检查规则的 uri 条件
- 优化 shenyu-client 代码以支持 shenyu-client-websocket
- 为 admin 依赖 micrometer 添加许可证
- 更新 maven-assembly-plugin 到 3.5.0
- 优化全局插件排序
- 在 shenyu-admin 中使用 BearerToken 替换 StatelessToken
- 重构 shenyu-logging 模块
- 为 api 文档添加验证
- 优化 Trie 代码并改进通配符 * 支持
- 重构自定义插件支持热加载
- 重构 ShenyuWebHandler 的 putPlugin 方法
- 重构 Shenyu webfilter
- 重构 oauth2 插件
- 重构 shenyu 选择器数据持续字段
- 重构 shenyu 选择器和规则缓存
- 移除 shenyu 客户端中未使用的泛型
- 重构 shenyu-plugin-sentinel 插件
- 重构缓存并添加端点以暴露缓存
- 重构 checkUserPassword,启动时不打印已知错误日志
- 为日志添加一些参数
- 重构 shenyu 全局异常处理程序
- 添加 shenyu 上传插件集成测试用例
- 优化一些语法糖
- 更改 discovery_upstream discovery_handler_id
- 重构 shenyu 全局异常处理程序
- 重构 shenyu 插件模块
- 重构 AlibabaDubboConfigCache
- 从依赖中移除 hutool
- 重构 ShenyuClientShutdownHook
- 提取并添加 BaseAnnotationApiBeansExtractor
- 支持多客户端注册
- 重构 shenyu-e2e 支持 shenyu 检查样式
- 重构 shenyu 客户端注册基础
- 为 shenyu divide 插件添加域测试
- 更新其他 rpc_ext 以支持相同服务
- 优化 consul 连接操作
- 重构 shenyu e2e springcloud yaml 变更
- 为 k8s ingress 控制器添加集成测试
- 拆分 apidoc 详细接口的文档字段,并添加 requestHeaders 和 responseParameters 等字段
- 添加 swagger 示例项目以测试 API 文档的相关功能
- 优化 json 格式的表单字段显示
- 重构 shenyu 日志可观察性
- 添加 bootstrap 启动日志
- 重构 swagger 的 api 文档
- 升级 grpc 版本到 1.53.0
- 重构 api 元数据处理功能
- 优化主代码和 pom
Bug 修复¶
- 智能 h2 路径
- 修复 crypto-response 插件
- 修复 jdk8 Map computeIfAbsent 性能 bug
- 修复 zombieRemovalTimes 代码
- 修复升级的 sql 文件
- 移除 detectOfflineLinks 标签
- 忽略 flattened-pom
- 修复 LOG 调用方法
- 修复 shenyu-example-springcloud 使用 nacos 时的 NPE
- 修复 shenyu-admin 参数类型名称
- 修复负载均衡 spi 资源
- 修复 sql 脚本错误
- 修复 jackson 的 24 小时格式和时区
- 修复 JwtUtils 错误
- 修复 dubbo 调用缓存 bug
- 修复缺少 HOST 删除操作
- 修复 SpringMvcClientEventListener 测试用例
- 修复更新 PENDING_SYNC 状态的僵尸
- 修复内存泄漏
- 修复规则查询失败因为规则太多
- 修复示例 http 中缺少 actuator 依赖和端口错误
- 修复 UpstreamCheckUtils http 和 https
- 修复 FileFilter 导致的内存泄漏
- 修复 zookeeper 同步错误
- 修复 MemorySafeWindowTinyLFUMap 内存泄漏错误
- 修复 ApiDoc 路径缺少分隔符
- 修复 shenyu trie 的 NPE
- 修复插件跳过错误
- 修复 oracle sql 错误
- 修复 shenyu 图标在 shenyu admin 中无法加载
- 修复 hystrix 回退 bug
- 修复 divide 和 springcloud 的预热时间
- 修复 springcloud 服务选择器
- 修复 shenyu-spring-boot-starter-plugin-mock 添加 spring.factories
- 修复 shenyu-client-mvc 和 shenyu-client-springcloud 丢失 ip
- 修复缓存中空的规则数据和选择器数据
- 修复 api 文档模块更新 api 详细信息错误
- 修复 KafkaLogCollectClient 中从配置获取主题
- 修复日志控制台线程安全
- 修复 brpc 集成测试响应大小
- 修复 selector 更新灰度移除 plugn-dubbo-common 缓存
- 修复 shenyu admin 菜单名称 bug
- 修复 shenyu admin 无法配置 consul 端口
- 修复 sh