Skip to main content

One post tagged with "Apache ShenYu"

View All Tags

· One min read

关于Apache ShenYu

Apache ShenYu 一款使用 Java Reactor 开发的响应式API 网关。以其高性能,动态灵活的流量管控,热插拔,易部署等特性,开箱即用为用户提供整套全生命周期的 API网关,包含 API注册、服务代理、协议转换、API文档与 API治理等功能。Apache ShenYu于2022年7月毕业成为Apache顶级项目。

官网: https://shenyu.apache.org GitHub: https://github.com/apache/shenyu

版本预览

三个月后,Apache ShenYu 发布了 2.7.0.3 版本,该版本共合并了 77 个 Pull Requests,新增了 29 项新功能,并进行了多项改进、重构了多项功能,修复了多个错误 版本记录:https://github.com/apache/shenyu/compare/v2.7.0.2...v2.7.0.3

更新内容

  • feat(ut): 添加一些测试,由 @yuluo-yx 在 #6105 中贡献
  • [type: release] 2.7.0.2 版本发布,由 @Aias00 在 #6111 中贡献
  • Bugfix: 修复 NacosConfig 测试错误,由 @Wweiei 在 #6116 中贡献
  • Bugfix: 修复 MCP Server 插件 requestConfig 过长的问题,由 @Wweiei 在 #6115 中贡献
  • fix: 修复 redisRateLimiter 类型转换错误,关联 #6103,由 @yuluo-yx 在 #6120 中贡献
  • [fix] 修复 EtcdInstanceRegisterRepositoryTest 运行错误,由 @Wweiei 在 #6127 中贡献
  • 将 pom.xml 中的注释更新为英文,由 @yuluo-yx 在 #6128 中贡献
  • fix: 修复使用 Nacos 数据同步时 ShenyuBootstrapApplication 启动失败的问题,由 @Wweiei 在 #6124 中贡献
  • fix: 增加 MCP 工具默认超时时间并改进错误处理,由 @Aias00 在 #6131 中贡献
  • fix: 使用 java.util.Base64 替换已弃用的 Base64 类,由 @Aias00 在 #6132 中贡献
  • 同步控制台,由 @Wweiei 在 #6133 中贡献
  • 修复在 Nacos 数据同步方式下删除选择器后缓存未正确删除的问题,由 @17661152 在 #6140 中贡献
  • feat(ut): 为 shenyu-registry-api 添加单元测试,由 @yuluo-yx 在 #6135 中贡献
  • feat: 重构注册中心保留关键字字段,由 @Wweiei 在 #6139 中贡献
  • feat: 为同步数据 API 添加单元测试,由 @yuluo-yx 在 #6142 中贡献
  • chore: 将中文注释更新为英文并添加许可证,由 @yuluo-yx 在 #6146 中贡献
  • feat: 重构选择器保留关键字字段,由 @Wweiei 在 #6141 中贡献
  • chore: 将中文翻译为英文,由 @yuluo-yx 在 #6149 中贡献
  • [type:optimize] 优化 EurekaInstanceRegisterRepository 中的实例比较逻辑,由 @yqw570994511 在 #6154 中贡献
  • [feat] 重构规则保留关键字字段,由 @Wweiei 在 #6147 中贡献
  • chore: 将中文翻译为英文,由 @yuluo-yx 在 #6151 中贡献
  • [type:optimize] 优化 NacosInstanceRegisterRepository 中的实例比较逻辑,由 @yqw570994511 在 #6153 中贡献
  • feat: 添加更友好的提示信息以方便调试,由 @yuluo-yx 在 #6157 中贡献
  • test: 为 FallbackShenyuClientRegisterService 添加更多测试,由 @yuluo-yx 在 #6155 中贡献
  • feat: 适配其他数据库用于 tag 和 appAuth,由 @yuluo-yx 在 #6152 中贡献
  • [feat] mcpServer 支持对象和数组参数,由 @Wweiei 在 #6150 中贡献
  • feat: 同步控制台,由 @Wweiei 在 #6160 中贡献
  • 修改示例测试 MotanPluginTest 的测试数据,由 @ywwana 在 #6164 中贡献
  • [fix] 修复数据同步 bug,由 @ywwana 在 #6165 中贡献
  • [feat] motan 插件支持基于选择器的配置,由 @478320 在 #6058 中贡献
  • chore: 修复拼写错误,由 @yuluo-yx 在 #6172 中贡献
  • [type:fix] 修复 e2e_kafka,由 @xcsnx 在 #6170 中贡献
  • chore: 添加新行,由 @yuluo-yx 在 #6171 中贡献
  • [fix] 修复 AiResponseTransformerPluginTest 运行错误,由 @Wweiei 在 #6169 中贡献
  • [feat] 重构 discovery_upstream 表的保留关键字字段,由 @Wweiei 在 #6167 中贡献
  • [type:fix] 修复 oracle schema.sql,由 @eye-gu 在 #6162 中贡献
  • [feat] 网关和客户端状态管理,由 @xchoox 在 #6057 中贡献
  • [feat]: shenyu mcp 插件自动注册,由 @478320 在 #6163 中贡献
  • [feat] 插件配置基于选择器进行缓存,由 @478320 在 #6068 中贡献
  • feat: AI 代理增强(集成 SpringAI、降级机制和代理 apikey),由 @fantasy-lotus 在 #6145 中贡献
  • [type:fix] 修复初始化 sql,由 @eye-gu 在 #6176 中贡献
  • 修复 mcp-auto-register 的一些 bug,由 @478320 在 #6180 中贡献
  • feat: 使用增强版替换旧的 ai 代理,由 @fantasy-lotus 在 #6174 中贡献
  • 修复 shenyu-registry-nacos:修改 nacos 实例检查逻辑,由 @BraveheartStone 在 #6178 中贡献
  • fix: 修复 doSelectMaster,由 @fantasy-lotus 在 #6185 中贡献
  • fix: 修复 shenyu-sync-data-http 同步密码错误,由 @yuluo-yx 在 #6181 中贡献
  • feat: ai 代理同步控制台,由 @fantasy-lotus 在 #6186 中贡献
  • [fix] TagVO 的 "name" 字段已更改,由 @Wweiei 在 #6190 中贡献
  • feat: 适配其他数据库用于服务发现的 sql 字段,由 @yuluo-yx 在 #6166 中贡献
  • chore(deps): 将 org.apache.zookeeper:zookeeper 从 3.9.3 升级到 3.9.4,由 @dependabot[bot] 在 #6183 中贡献
  • [type:feat] 添加单元测试,由 @xchoox 在 #6182 中贡献
  • [feat] loggingRabbitMQ 插件支持基于选择器的配置,由 @478320 在 #6059 中贡献
  • [feat] sofa 插件支持基于选择器的配置,由 @478320 在 #6062 中贡献
  • [feat]: loggingKafka 插件支持基于选择器的配置,由 @478320 在 #6074 中贡献
  • [type:optimize] 优化 LogCollectUtils,由 @liangjh98 在 #6191 中贡献
  • [type:feat] 修改 bootstrap 心跳上报机制,由 @xchoox 在 #6187 中贡献
  • [type:feat] HTTP 和 WebSocket 同步模式支持心跳检测,由 @xchoox 在 #6179 中贡献
  • feat: 为 shenyu-register-client-api 添加单元测试,由 @yuluo-yx 在 #6192 中贡献
  • [feat] github ci,由 @Aias00 在 #6031 中贡献
  • infra: 新增 Issue 创建时自动通知的 GitHub Action,由 @yuluo-yx 在 #6198 中贡献
  • feat: 为 shenyu-register-client-beat 模块添加单元测试,由 @yuluo-yx 在 #6193 中贡献
  • infra: 新增 Issue 标签管理 GitHub Action,由 @yuluo-yx 在 #6197 中贡献
  • [feat] mvnd,由 @Aias00 在 #6041 中贡献
  • [ISSUE #6144] 修复通过 Nacos 发现下游服务时,下游服务重启后旧 IP 覆盖新 IP 的问题。该问题导致通过 ShenYu 调用下游服务时报错 “Can not find healthy upstream URL, please check your configuration!”,由 @BraveheartStone 在 #6201 中贡献
  • [fix] 修复 MCP Server 中由 shenyuContext 设置的 GET 请求路径截断问题,由 @MaMengzhen 在 #6209 中贡献
  • fix: 修复别名 shenyu-access-lo… 下存在多个索引时的问题,由 @wusuobuzai 在 #6203 中贡献
  • 修复活跃提交者列表中的拼写错误,由 @yuluo-yx 在 #6205 中贡献
  • feat: 为 shenyu-registry-k8s 模块添加单元测试,由 @yuluo-yx 在 #6206 中贡献
  • fix: 移除 MotanProxyServiceTest 中不必要的 mock 返回值,由 @Aias00 在 #6210 中贡献
  • feat(ci): 使用本地 issue-manager 脚本替换 prow action,由 @yuluo-yx 在 #6211 中贡献
  • 修复 Mcp 自动注册 bug,由 @478320 在 #6212 中贡献
  • feat: 增强 mcp server 自动注册功能,由 @478320 在 #6213 中贡献
  • fix: 修复因 mvnd 缓存导致使用过时依赖的问题,由 @478320 在 #6217 中贡献
  • 修复多个选择器连接不同注册中心的问题,由 @yunlongn 在 #6218 中贡献
  • feat: 通过 swagger 文档导入 mcp server 配置,由 @478320 在 #6219 中贡献
  • refactor: 提取插件、选择器和规则数据类的公共基础数据,由 @yuluo-yx 在 #6215 中贡献
  • feat: 移除 shenyu-infra-x-module 模块,由 @yuluo-yx 在 #6216 中贡献
  • chore: 修复某些文件中的拼写错误,由 @khanhkhanhlele 在 #6224 中贡献
  • fix: 修复 shenyu-examples-mcp,由 @478320 在 #6226 中贡献
  • 修复 shenyu mcp 相关 bug,由 @478320 在 #6227 中贡献
  • chore: 使用新依赖及其版本更新 LICENSE,由 @Aias00 在 #6234 中贡献

新贡献者

  • @17661152 首次贡献于 #6140
  • @xchoox 首次贡献于 #6057
  • @BraveheartStone 首次贡献于 #6178
  • @liangjh98 首次贡献于 #6191
  • @MaMengzhen 首次贡献于 #6209
  • @wusuobuzai 首次贡献于 #6203
  • @khanhkhanhlele 首次贡献于 #6224

成为贡献者

我们欢迎每一位贡献者的加入ShenYu,欢迎贡献者以Apache Way的精神参与ShenYu!

贡献者指南请参考:

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

· One min read

关于Apache ShenYu

Apache ShenYu 一款使用 Java Reactor 开发的响应式API 网关。以其高性能,动态灵活的流量管控,热插拔,易部署等特性,开箱即用为用户提供整套全生命周期的 API网关,包含 API注册、服务代理、协议转换、API文档与 API治理等功能。Apache ShenYu于2022年7月毕业成为Apache顶级项目。

官网: https://shenyu.apache.org GitHub: https://github.com/apache/shenyu

版本预览

时隔一年,Apache ShenYu发布了2.7.0.2版本,该版本共计提交了54+个 Pull Request,新增约19+个新特性,新增了若干增强,重构了若干功能,并且修复了若干个bug。共计20位贡献者参与其中,累计贡献者达411+位。

版本记录:https://github.com/apache/shenyu/compare/v2.7.0.1...v2.7.0.2

改动内容

新贡献者

成为贡献者

我们欢迎每一位贡献者的加入ShenYu,欢迎贡献者以Apache Way的精神参与ShenYu!

贡献者指南请参考:

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

· One min read

关于Apache ShenYu

Apache ShenYu 一款使用 Java Reactor 开发的响应式API 网关。以其高性能,动态灵活的流量管控,热插拔,易部署等特性,开箱即用为用户提供整套全生命周期的 API网关,包含 API注册、服务代理、协议转换、API文档与 API治理等功能。Apache ShenYu于2022年7月毕业成为Apache顶级项目。

官网: https://shenyu.apache.org GitHub: https://github.com/apache/shenyu

版本预览

时隔一年,Apache ShenYu发布了2.7.0.1版本,该版本共计提交了72+个 Pull Request,新增约17+个新特性,新增了若干增强,重构了若干功能,并且修复了若干个bug。共计32位贡献者参与其中,累计贡献者达403+位。

版本记录:https://github.com/apache/shenyu/compare/v2.7.0...v2.7.0.1

改动内容

新贡献者

成为贡献者

我们欢迎每一位贡献者的加入ShenYu,欢迎贡献者以Apache Way的精神参与ShenYu!

贡献者指南请参考:

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

· One min read

关于Apache ShenYu

Apache ShenYu 一款使用 Java Reactor 开发的响应式API 网关。以其高性能,动态灵活的流量管控,热插拔,易部署等特性,开箱即用为用户提供整套全生命周期的 API网关,包含 API注册、服务代理、协议转换、API文档与 API治理等功能。Apache ShenYu于2022年7月毕业成为Apache顶级项目。

官网: https://shenyu.apache.org GitHub: https://github.com/apache/shenyu

版本预览

时隔一年,Apache ShenYu发布了2.7.0版本,该版本共计提交了254+个 Pull Request,新增约17+个新特性,新增了若干增强,重构了若干功能,并且修复了若干个bug。共计61位贡献者参与其中,累计贡献者达350+位。

版本记录:https://github.com/apache/shenyu/compare/v2.6.1...v2.7.0

新特性

1.升级 Java版本,从jdk8升级到jdk17

具体pr请查看:https://github.com/apache/shenyu/pull/5374

2.升级 SpringBoot 版本,升级到 3.x

具体pr请查看:https://github.com/apache/shenyu/pull/5583

3.支持 shenyu admin 集群模式

具体pr请查看:https://github.com/apache/shenyu/pull/5544

https://github.com/apache/shenyu/pull/5592

4.升级 checkstyle 插件版本到 3.4.0

具体pr请查看:https://github.com/apache/shenyu/pull/5614

5.数据源支持 OceanBase

具体pr请查看:https://github.com/apache/shenyu/pull/5617

6.支持批量修改选择器/规则状态

具体pr请查看:https://github.com/apache/shenyu/pull/5499

7.支持批量修改 PathAuth 状态

具体pr请查看:https://github.com/apache/shenyu/pull/5488

8.升级 apache dubbo 版本

具体pr请查看:https://github.com/apache/shenyu/pull/5527

9.支持 Contribute with Gitpod

具体pr请查看:https://github.com/apache/shenyu/pull/5610

10.支持配置批量导出和导入

具体pr请查看:https://github.com/apache/shenyu/pull/5474

11.添加 shenyu 客户端心跳

具体pr请查看:https://github.com/apache/shenyu/pull/5659

12.支持命名空间

具体pr请查看:https://github.com/apache/shenyu/pull/5584

https://github.com/apache/shenyu/pull/5715

https://github.com/apache/shenyu/pull/5716

https://github.com/apache/shenyu/pull/5719

https://github.com/apache/shenyu/pull/5729

https://github.com/apache/shenyu/pull/5734

https://github.com/apache/shenyu/pull/5735

https://github.com/apache/shenyu/pull/5740

https://github.com/apache/shenyu/pull/5746

https://github.com/apache/shenyu/pull/5757

https://github.com/apache/shenyu/pull/5760

https://github.com/apache/shenyu/pull/5765

https://github.com/apache/shenyu/pull/5769

https://github.com/apache/shenyu/pull/5771

https://github.com/apache/shenyu/pull/5779

https://github.com/apache/shenyu/pull/5786

https://github.com/apache/shenyu/pull/5790

https://github.com/apache/shenyu/pull/5798

https://github.com/apache/shenyu/pull/5799

https://github.com/apache/shenyu/pull/5823

https://github.com/apache/shenyu/pull/5847

https://github.com/apache/shenyu/pull/5857

13.支持 k8s 动态扩展

具体pr请查看:https://github.com/apache/shenyu/pull/5686

14.通过实现客户端 ID 验证使新登录时失效先前的令牌

具体pr请查看:https://github.com/apache/shenyu/pull/5600

15.支持 divide-plugin 的灰度发布

具体pr请查看:https://github.com/apache/shenyu/pull/5763

16.支持 Kubernetes 作为注册中心

具体pr请查看:https://github.com/apache/shenyu/pull/5769

增强

1.添加 RocketMQ 日志的e2e测试

具体pr请查看:https://github.com/apache/shenyu/pull/5439

2.增强指标限流器的收集功能

具体pr请查看:https://github.com/apache/shenyu/pull/5461

3.增强 Sentinel、Resilience4j 和 Hystrix 的指标收集

具体pr请查看:https://github.com/apache/shenyu/pull/5468

4.整理 SOFA commons-tools 依赖

具体pr请查看:https://github.com/apache/shenyu/pull/5609

6.添加缺失的许可证声明

具体pr请查看:https://github.com/apache/shenyu/pull/5503

7.为 Kafka 消息发送设置回调机制

具体pr请查看:https://github.com/apache/shenyu/pull/5748

8.使用元数据中的负载均衡配置用于 Dubbo

具体pr请查看:https://github.com/apache/shenyu/pull/5806

9.为从选择器获取的 Upstream 添加非空校验

具体pr请查看:https://github.com/apache/shenyu/pull/5804

10.将规则处理中的超时设置到 Dubbo RPC 上下文

具体pr请查看:https://github.com/apache/shenyu/pull/5778

11.在启用选择器和规则时发布事件

具体pr请查看:https://github.com/apache/shenyu/pull/5762

12.从命名空间会话映射中移除已关闭的会话

具体pr请查看:https://github.com/apache/shenyu/pull/5734

13.为 ShenyuClientURIExecutorSubscriber 添加测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/5413

14.为 ShenyuClientIllegalArgumentException 添加测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/5408

15.为 ShenyuClientRegisterEventPublisher 添加测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/5417

16.为 ShenyuClientMetadataExecutorSubscriber 添加测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/5404

17.为 AbstractWasmPluginDataHandler 添加测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/5451

18.为 ShenyuClientRegisterRepositoryFactoryTest 添加测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/5443

19.为 AbstractWasmDiscoveryHandler 添加测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/5453

20.升级 SOFA RPC 版本支持

具体pr请查看:https://github.com/apache/shenyu/pull/5526

21.将签名插件的请求头键添加到跨域过滤器配置中

具体pr请查看:https://github.com/apache/shenyu/pull/5627

22.加密密码

具体pr请查看:https://github.com/apache/shenyu/pull/5436

23.添加 AbstractShenyuWasmPlugin 测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/5450

24.重写插件/上下文路径插件支持跨应用和插件

具体pr请查看:https://github.com/apache/shenyu/pull/5438

25.移除重复路径检查

具体pr请查看:https://github.com/apache/shenyu/pull/5514

26.移除 Alibaba Dubbo 支持

具体pr请查看:https://github.com/apache/shenyu/pull/5500

27.支持通过 Docker 环境变量设置 HTTP 路径

具体pr请查看:https://github.com/apache/shenyu/pull/5833

28.添加代码重构改进

具体pr请查看:https://github.com/apache/shenyu/pull/5613

29.支持从 cookie、header、param 中获取令牌

具体pr请查看:https://github.com/apache/shenyu/pull/5547

30.使 ShenyuDubboService 注解的默认值与 DubboService 注解保持一致

具体pr请查看:https://github.com/apache/shenyu/pull/5816

31.将数据库脚本添加到管理包中

具体pr请查看:https://github.com/apache/shenyu/pull/5724

32.清理无用代码并进行改进

具体pr请查看:https://github.com/apache/shenyu/pull/5849

https://github.com/apache/shenyu/pull/5803

https://github.com/apache/shenyu/pull/5789

33.优化 MotanServiceEventListener 测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/5745

34.删除 shenyu-registry-eureka.xml 中重复的 Maven 配置

具体pr请查看:https://github.com/apache/shenyu/pull/5836

35.更新 JWT 依赖

具体pr请查看:https://github.com/apache/shenyu/pull/5480

36.打印插件执行时间

具体pr请查看:https://github.com/apache/shenyu/pull/5437

37.Admin 中的本地发现支持 upstream 健康检查

具体pr请查看:https://github.com/apache/shenyu/pull/5596

38.关闭规则缓存

具体pr请查看:https://github.com/apache/shenyu/pull/5589

39.减少并发

具体pr请查看:https://github.com/apache/shenyu/pull/5587

40.优化逻辑以避免 "orElse" 执行,更新 VersionTwoExtractor

具体pr请查看:https://github.com/apache/shenyu/pull/5415

重构

1.使用 spring-integration-jdbc 实现 Admin 分布式锁

具体pr请查看:https://github.com/apache/shenyu/pull/5457

2.重构 beanUtils

具体pr请查看:https://github.com/apache/shenyu/pull/5497

3.移除 macOS CI

具体pr请查看:https://github.com/apache/shenyu/pull/5559

4.更新日志插件中已弃用的 DataBuffer 方法

具体pr请查看:https://github.com/apache/shenyu/pull/5620

5.将 e2e k8s 测试修改为 docker compose

具体pr请查看:https://github.com/apache/shenyu/pull/5710

6.将 Admin swagger 从 springfox 迁移到 springdoc

具体pr请查看:https://github.com/apache/shenyu/pull/5630

7.重构 springcloud 插件

具体pr请查看:https://github.com/apache/shenyu/pull/5695

8.重构部分代码

具体pr请查看:https://github.com/apache/shenyu/pull/5568

9.删除 SO_SNDBUF 和 SO_RCVBUF

具体pr请查看:https://github.com/apache/shenyu/pull/5502

10.重构 shenyu-sync-data-http:将日志 %s 替换为

具体pr请查看:https://github.com/apache/shenyu/pull/5465

11.优化节点类型监听器

具体pr请查看:https://github.com/apache/shenyu/pull/5435

12.重构插件生命周期

具体pr请查看:https://github.com/apache/shenyu/pull/5432

13.调整代码顺序并移除无效的输入参数

具体pr请查看:https://github.com/apache/shenyu/pull/5397

修复

1.修复请求插件的重复请求头问题

具体pr请查看:https://github.com/apache/shenyu/pull/5846

2.修复删除 divide 选择器时代理选择器和发现未删除的问题

具体pr请查看:https://github.com/apache/shenyu/pull/5845

3.修复日志插件错误日志捕获问题

具体pr请查看:https://github.com/apache/shenyu/pull/5842

4.修复日志插件示例 bug

具体pr请查看:https://github.com/apache/shenyu/pull/5429

5.修复内存溢出问题

具体pr请查看:https://github.com/apache/shenyu/pull/5407

6.修复重写集成测试

具体pr请查看:https://github.com/apache/shenyu/pull/5445

7.修复 AbstractWasmPluginDataHandlerTest

具体pr请查看:https://github.com/apache/shenyu/pull/5464

8.修复 sql-script/h2/schema.sql 中缺少主键的问题

具体pr请查看:https://github.com/apache/shenyu/pull/5481

9.修复数据字典页面数据排序异常

具体pr请查看:https://github.com/apache/shenyu/pull/5483

10.修复文档错误

具体pr请查看:https://github.com/apache/shenyu/pull/5505

11.解决仪表盘路由与上下文路径更新不匹配的问题

具体pr请查看:https://github.com/apache/shenyu/pull/5510

12.修复 etcd 同步配置问题

具体pr请查看:https://github.com/apache/shenyu/pull/5535

13.修复 consul 同步问题

具体pr请查看:https://github.com/apache/shenyu/pull/5546

14.修复未注册无法查询的错误

具体pr请查看:https://github.com/apache/shenyu/pull/5578

15.修复插件编辑页面问题:修正插件 ID 查询和更新数据类型

具体pr请查看:https://github.com/apache/shenyu/pull/5622

16.修复 AdminConstants 类拼写错误

具体pr请查看:https://github.com/apache/shenyu/pull/5637

17.修复 shenyu-examples-springmvc 启动失败问题

具体pr请查看:https://github.com/apache/shenyu/pull/5664

18.修复仪表盘菜单子项排序不生效问题

具体pr请查看:https://github.com/apache/shenyu/pull/5691

19.修复 ShenyuApacheDubboXmlProviderApplication 配置

具体pr请查看:https://github.com/apache/shenyu/pull/5811

20.修复代理选择器和发现的数据同步 ID 不唯一问题

具体pr请查看:https://github.com/apache/shenyu/pull/5783

21.过滤禁用的字典选项

具体pr请查看:https://github.com/apache/shenyu/pull/5776

22.修复 SpringCloudParser 元数据空数据问题

具体pr请查看:https://github.com/apache/shenyu/pull/5737

23.修复客户端注册验证

具体pr请查看:https://github.com/apache/shenyu/pull/5764

24.配置 dubbo 序列化检查状态为禁用

具体pr请查看:https://github.com/apache/shenyu/pull/5756

25.修复示例 TestApacheDubboXmlApplication 启动失败问题

具体pr请查看:https://github.com/apache/shenyu/pull/5754

26.修复 nacos 数据同步模型缺少上下文路径配置

具体pr请查看:https://github.com/apache/shenyu/pull/5722

27.修复 SPI 在多线程场景下创建非单例对象问题

具体pr请查看:https://github.com/apache/shenyu/pull/5713

28.修复错误的 SQL 语法异常

具体pr请查看:https://github.com/apache/shenyu/pull/5707

29.修复 ListUtil->merge 异常

具体pr请查看:https://github.com/apache/shenyu/pull/5642

30.修复元数据禁用未过滤问题

具体pr请查看:https://github.com/apache/shenyu/pull/5638

31.修复 divide 日志请求方法

具体pr请查看:https://github.com/apache/shenyu/pull/5607

32.修复 e2e chunk header 错误

具体pr请查看:https://github.com/apache/shenyu/pull/5593

33.修复 cookie 错误和 SQL 检查

具体pr请查看:https://github.com/apache/shenyu/pull/5567

34.修复空指针异常问题

具体pr请查看:https://github.com/apache/shenyu/pull/5539

https://github.com/apache/shenyu/pull/5530

35.修复无效路径错误

具体pr请查看:https://github.com/apache/shenyu/pull/5533

36.修复热加载问题

具体pr请查看:https://github.com/apache/shenyu/pull/5509

37.修复 e2e 测试用例无法运行 wget 命令

具体pr请查看:https://github.com/apache/shenyu/pull/5519

38.修复降级问题

具体pr请查看:https://github.com/apache/shenyu/pull/5496

39.解决 rule-sqlmap.xml 中的 SQL 错误

具体pr请查看:https://github.com/apache/shenyu/pull/5644

40.修复 readYmlBuildRepository 空指针异常

具体pr请查看:https://github.com/apache/shenyu/pull/5819

41.修复 nacos 无法在 Shenyu-examples-SpringCloud 项目中注册问题

具体pr请查看:https://github.com/apache/shenyu/pull/5825

42.修复 springCloud 规则数据路径设置未使用问题

具体pr请查看:https://github.com/apache/shenyu/pull/5841

https://github.com/apache/shenyu/pull/5843

43.修复 shenyu-plugin-logging-elasticsearch:修改 ElasticSearchLogConfig 的 setIndexName

具体pr请查看:https://github.com/apache/shenyu/pull/5830

44.修复停止服务时未首先从网关下线问题

具体pr请查看:https://github.com/apache/shenyu/pull/5507

45.修复 k8s 存活探针无法运行 wget 命令错误

具体pr请查看:https://github.com/apache/shenyu/pull/5513

46.修复 AbstractNodeDataSyncService 启动时加载发现上游问题

具体pr请查看:https://github.com/apache/shenyu/pull/5473

贡献者

特别感谢以下贡献者对 2.7.0版本的支持和参与(排名不分先后)。

0xmkzt,Divyansh200102,IceFoxs,JJellyfish,Kerwin Bryant,M.G. Ting,Misaya295,NanMu,Qi Xu,RayayChung,Ricco Chen,Sinsy, VampireAchao,WindSearcher,Wweiei,Yu Siheng,aias00,caaaaaat,crazyStar,crudboy,dragon-zhang,dyjxg4xygary,dyp314417995, eye-gu,frank,hdgaadd,hql0312,j@ckzh0u,jerbo99,loongs-zhang,mmengLong,moremind,po-168,tomsun28,ttfont,wlngo,wyfvsfy, xcsnx,xiangqianZ,xiaoyu,yunlongn,ywwana,zhengke zhou,zhengpeng,ywj1352

成为贡献者

我们欢迎每一位贡献者的加入ShenYu,欢迎贡献者以Apache Way的精神参与ShenYu!

贡献者指南请参考:

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

· One min read

个人介绍

初识 Apache ShenYu 网关

最初接触 Apache ShenYu 时,我正参与 Dromara 社区的开发工作。当时,猫大人(Apache ShenYu 的创始人和 VP)在社区中发起了一个前端开发需求。由于我正好熟悉 ShenYu 使用的 React 技术,我便决定加入贡献者的行列。虽然我并非 ShenYu 的直接用户,但为社区贡献我的前端技术,感觉是一个非常自然的选择。

开源贡献之路

在贡献 ShenYu 项目的过程中,我逐渐明确了自己的方向,并通过阅读源码来深入了解项目结构。在这个过程中,我积极地提交代码并进行修复,以下是我在 ShenYu 项目中的一些贡献:

ShenYu

13 commits
6,084 ++ 2,379 --

  • 功能开发: 实现了客户端 ID 验证,确保在新登录时失效旧令牌 (#5600)
  • 功能添加: 为警报模块增加了菜单按钮及其相关权限管理 (#5156)
  • 测试扩展: 为 PortUtils.findPort 增加了单元测试用例 (#4604)
  • 默认配置改进: 设置 NettyClient 作为默认的 HttpClient (#5200)
  • 问题修复: 修复了因上下文路径更新导致的路由匹配错误 (#5510)
  • 时间格式修正: 解决了警报模块中 LocalDateTime 的格式化问题 (#5180)

ShenYu Dashboard

27 commits
1,780 ++ 402 --

  • 功能开发: 在新登录时,使令牌失效,提升安全性 (#467)
  • 新特性: 添加了通用组件的命名空间选择功能 (#462)
  • 安全优化: 在多次错误密码输入后要求输入验证码 (#465)
  • 界面优化: 移除了多余的管理员信息编辑按钮,简化界面 (#463)
  • 批量操作支持: 增加了选择器和规则的批量启用/禁用功能 (#452)
  • 用户体验提升: 改进了 JSON 编辑器的使用体验 (#374)
  • 性能优化: 优化了 React 生命周期管理,提高了 Dashboard 的响应速度 (#369)
  • 模块改进: 对警报模块进行了关键功能优化 (#346)
  • 集成增强: 将警报模块的管理界面和功能进行了整合 (#333)
  • 参数管理: 在 API 请求参数缺失时,自动采用文档中的默认参数 (#332)
  • 文档标准化: 统一了 API 文档格式,并修复了多个集成问题 (#303)
  • 文档改进: 对 API 文档进行了全面的优化调整 (#301)
  • 导航功能: 在菜单导航中新增了系统和资源的搜索功能 (#279)
  • 路由修正: 修正了上下文路径更新后的路由匹配问题 (#428)
  • 标签管理: 解决了警报模块中标签删除的相关问题 (#377)
  • 删除确认: 为 API 标签删除功能增加了确认步骤,防止误操作 (#375)
  • 页面错误修复: 修复了组件挂载时导致的代理页面错误 (#351)
  • 查询渲染修复: 解决了 HeadersEditor 中查询渲染的问题 (#331)

社区参与和成长

通过参与 ShenYu 的社区例会和贡献代码,我不仅提升了自己的技术水平,还学到了如何更有效地在开源项目中进行协作。与社区成员的合作,让我深刻体会到开源社区的开放与包容。

给开源开发者的建议

对于想要加入开源项目的开发者,我的建议是:从小处着手,不要怕事情小,只要它有助于项目的发展,你的每一次贡献都会被社区所重视。持续学习和不断尝试,最终你会找到适合自己的贡献方式。

一起为 ShenYu 贡献力量

如果你也想为 Apache ShenYu 贡献力量,可以从以下几点入手:

结语

被提名为 ShenYu Committer 对我来说是一个重要的里程碑。我将继续为 ShenYu 贡献力量,也期待更多的开发者加入我们,共同推动 ShenYu 的发展。

· One min read

个人介绍

姓名: 刘宏宇

github: https://github.com/Aias00/

email: liuhongyu@apache.org

初识 Apache ShenYu 网关

我第一次接触 Apache ShenYu 网关是在公司进行业务改造期间,对网关进行技术选型。当时,Apache ShenYu 还处于 Apache 的孵化阶段。相比于其他同类型的产品,Apache ShenYu 提供了友好的控制管理界面,丰富的插件功能,并且和我们的技术栈十分匹配,社区非常活跃,这些特点使我们最终选定了 Apache Shenyu 作为网关的解决方案,并且将其广泛应用于各项业务中。

开源贡献之路

在工作中应用 Apache ShenYu 的过程中,从最开始的使用到后来的逐渐深入了解,为了解决一些潜在的问题和定制开发一些业务插件,我开始阅读 ShenYu 的源码,学习其设计思想和实现原理。

在 Apache ShenYu 从孵化阶段正式毕业后,我希望自己也能从一个普通的用户变成一个贡献者,为 ShenYu 社区做出一些贡献。

我首先阅读了贡献者指南,向开发者邮箱发送邮件进行了邮件订阅,开始关注 ShenYu 的 GitHub 仓库,查看 issue 和 PR。

在阅读了一些 issue 后,我发现了一个关于补充单元测试的 issue,于是我决定尝试一下。我 fork 了 ShenYu 的仓库,clone 到本地,修改了单元测试的内容并提交了 PR。这个 PR 很快就被合并了,这是我第一次为 ShenYu 社区做出的贡献。

当我看到自己的代码被合并进主分支时,那种激动的心情难以言表。正是这次经历坚定了我"一定要成为一个 ShenYu Committer"的决心。

随后,我开始通过阅读文档和源码,以及参加双周例会来深入了解项目。我从简单的 issue 任务开始,持续不断地学习,逐渐接手一些更具挑战性的任务。以下是我主要的贡献:

  • 增加了配置批量导入导出的功能
  • 升级了 Sofa Rpc 版本
  • 移除了 Alibaba Dubbo 依赖
  • 升级了 Apache Dubbo 版本
  • 与社区的伙伴合作将 Jdk8 升级到了 Jdk17
  • 修复了一些 github 流水线执行过程中出现的问题
  • 增加了 Shenyu Admin 集群功能
  • 升级了 SpringBoot 版本
  • 开发了 Apache Shenyu 的 KubeSphere 拓展

社区参与和成长

每两周周四的晚上,Apache ShenYu 贡献者们都有固定时间的线上例会。会上主要会对 RoadMap 中的一些功能和社区提出的一些 issue 进行相关讨论,同时如果自己有问题或者想法也可以畅所欲言。

在这些会议中,我认识了许多热衷于开源的伙伴。通过周会讨论和任务分配,我不断学习新知识,同时也有机会为社区和行业贡献自己的力量。

在这个过程中,我不仅提高了自己的技术能力,还学会了如何与他人合作,如何更好地沟通和协作。

在此特别感谢社区中帮助过我的伙伴们, 感谢他们的耐心指导和帮助,让我能够更快地融入到社区中来,更好地为社区做出贡献。

给开源开发者的建议

开源开发是一件很有意义但也很具有挑战性的事情,需要投入大量的时间和精力,不断学习不断尝试,但同时也会获得很多成就感和快乐。

有时候你可能会遇到各种各样的问题,但是不要放弃,多尝试多思考,你会发现问题并不是那么难解决的。

同时,多参与社区活动,多和社区的伙伴们交流,你会发现开源社区是一个充满爱心和友善的地方,大家都会互相帮助,共同进步。

如何参与 ShenYu

如果你也想加入 Apache ShenYu 社区,可以参考以下方式:

  1. 查看 Apache ShenYu 官网提供的贡献者指南:https://shenyu.apache.org/zh/community/contributor-guide

  2. 关注 ShenYu 的 GitHub Issues,参与功能开发和问题修复:https://github.com/apache/shenyu/issues

结语

成为 Committer 是一个新的起点。我希望能够保持初心,继续为开源事业贡献自己的力量。同时也希望更多的朋友能够加入到 Apache ShenYu 社区中来,一起为开源事业添砖加瓦。

· One min read

个人介绍

大家好,我是张乐,github-id: kerwin612,非常感谢Apache ShenYu社区对我的认可,让我有幸成为这个杰出开源项目的Committer。在此,我想与大家分享我参与Apache ShenYu项目的经历,以及我从中获得的成长和一些建议。

初识Apache ShenYu

与Apache ShenYu的缘分始于我在公司网关技术选型时的探索。当时,我了解到Apache ShenYu这一项目,它不仅拥有高性能、多协议、易扩展的特性,还提供了丰富的开箱即用的插件,让我对其产生了浓厚的兴趣。于是,我决定深入探索,并在本地环境中成功运行了ShenYu的dev版本。

我的开源之路

作为一名全栈工程师,我对前后端技术都有一定的了解,这也使我能够更全面地理解和体验ShenYu。在试用过程中,我发现了许多可以优化的地方,于是我决定动手解决这些问题。我给自己列了一个任务清单,逐一解决了这些问题,并将我的改进提交给了社区。

在前端方面,我主要进行了以下优化:

  • 我仔细检查了全站的样式,发现并修复了多处样式异常。这些异常虽然看似微小,但却直接影响着用户的视觉体验。通过修复这些异常,我使得ShenYu的前端界面更加整洁、美观,提升了用户的使用体验。

  • 我新增了多处体验优化。这些优化可能是一个按钮的位置调整,也可能是一个界面的交互逻辑改进。通过这些优化,我使得ShenYu的前端界面更加符合用户的使用习惯,显著提升用户的使用便捷性。

  • 我还积极处理了二十来个与前端相关的issue。这些issue有的是用户在使用过程中遇到的问题,有的是社区成员提出的改进建议。我仔细分析了每个issue的原因,并成功解决了这些issue,为ShenYu的前端稳定性做出了贡献。

在后端方面,我的贡献主要集中在以下几个方面:

  • 我处理了十来个与后端相关的issue。这些issue有的是bug修复,有的是功能增强。我通过查阅文档、调试代码、最后由项目管理员提供意见,逐一解决了这些问题。

  • 我新增了一个isBlank条件判断功能。这个功能可以方便地判断一个请求是否包含某个参数,为后端的逻辑处理提供了便利。

  • 我还新增了一个插件basic-auth。这个插件可以实现基本的认证授权功能,通过与其他社区成员的协作,我成功完成了这个插件的开发和测试工作,并将其集成到了ShenYu中。

我在Apahce ShenYu社区的体验

随着我提交的PR越来越多,我也逐渐深入到了Apache ShenYu社区的核心。在这里,我感受到了社区成员们的热情和开放,他们总是乐于分享知识和经验,帮助我更好地了解和使用ShenYu。经过一段时间的努力和积累,我收到了ShenYu社区的邀请,正式成为了这个优秀团队的Committer。

成为Apache Committer对我来说不仅是一种荣誉,更是一种责任和担当。这代表了社区对我的信任和认可,也让我更加坚定了为社区做出贡献的决心。我深知,成为Committer只是一个新的起点,在未来的日子里,我将继续参与ShenYu的优化和发展工作,不断提升自己的技能和能力。我将继续关注社区的动态和需求,积极参与社区的活动和讨论,为ShenYu的发展贡献更多的力量。

此外,我也计划进一步深入学习Apache ShenYu的技术细节和架构原理,以便更好地为社区提供技术支持和解决方案。我相信,通过不断的学习和实践,我能够成为一名更加优秀的Committer,为Apache ShenYu的发展做出更大的贡献。

最后,我要感谢Apache ShenYu社区给予我的机会和信任,也感谢所有社区成员们的支持和帮助。我相信,在我们共同的努力下,Apache ShenYu一定会越来越好!

谢谢大家!

· One min read

关于Apache ShenYu

Apache ShenYu 一款使用 Java Reactor 开发的响应式API 网关。以其高性能,动态灵活的流量管控,热插拔,易部署等特性,开箱即用为用户提供整套全生命周期的 API网关,包含 API注册、服务代理、协议转换、API文档与 API治理等功能。Apache ShenYu于2022年7月毕业成为Apache顶级项目。

官网: https://shenyu.apache.org GitHub: https://github.com/apache/shenyu

版本预览

时隔半年,Apache ShenYu发布了2.6.0版本,该版本共计提交了280+个 Pull Request,新增约20+个新特性,新增了若干增强,重构了若干功能,并且修复了若干个bug。共计78位贡献者参与其中,累计贡献者达350+位。

版本记录:https://github.com/apache/shenyu/compare/v2.5.1...v2.6.0

新特性

1.支持插件上传功能,支持网关热加载插件

具体使用请查看:https://shenyu.apache.org/zh/docs/next/developer/custom-plugin

具体pr请查看:https://github.com/apache/shenyu/pull/4392

2.支持使用Apollo作为数据同步和注册中心

sheneyu:
sync:
apollo:
appId: shenyu
meta: http://localhost:8080
env: dev
clusterName: test
namespace: application

具体pr请查看:https://github.com/apache/shenyu/pull/4532

3.支持springboot client在shenyu client中动态配置

4.添加TCP插件

具体使用请查看:https://shenyu.apache.org/zh/docs/next/plugin-center/proxy/tcp-plugin

具体pr请查看:https://github.com/apache/shenyu/pull/4607

https://github.com/apache/shenyu/pull/4766

5.支持springmvn(boot)在shenyu client中收集api-meta data

具体pr请查看:https://github.com/apache/shenyu/pull/4600

6.添加shenyu ingress controller的支持

具体使用请查看:https://shenyu.apache.org/zh/docs/user-guide/kubernetes-controller/build-deploy

https://shenyu.apache.org/zh/docs/user-guide/kubernetes-controller/config

具体pr请查看:https://github.com/apache/shenyu/pull/4620

配置如下:

shenyu:
netty:
http:
sni:
enabled: true
mod: k8s #k8s模式适用
defaultK8sSecretNamespace: shenyu-ingress #默认secret资源的namespace
defaultK8sSecretName: default-cert #默认secret资源名字

7.添加zookeeper,naocs,apollo,HttpLongPolling,consul作为shenyu服务发现

具体pr请查看:https://github.com/apache/shenyu/pull/4636

https://github.com/apache/shenyu/pull/4657

https://github.com/apache/shenyu/pull/4802

https://github.com/apache/shenyu/pull/4795

https://github.com/apache/shenyu/pull/4800

https://github.com/apache/shenyu/issues/4562

8.添加华为云lts日志收集

具体pr请查看:https://github.com/apache/shenyu/pull/4812

9.添加opengauss数据库支持

具体pr请查看:https://github.com/apache/shenyu/pull/4856

10.添加polaris作为shenyu的数据同步和注册中心

shenyu:
sync:
polaris:
url: 127.0.0.1:8093
namespace:
fileGroup:

具体pr请查看:https://github.com/apache/shenyu/pull/4410

https://github.com/apache/shenyu/pull/4897

11.添加shenyu匹配缓存

shenyu:
selectorMatchCache:
## selector L1 cache
cache:
enabled: false
initialCapacity: 10000 # initial capacity in cache
maximumSize: 10000 # max size in cache
## selector L2 cache, use trie as L2 cache
trie:
enabled: false
cacheSize: 128 # the number of plug-ins
matchMode: antPathMatch
ruleMatchCache:
## rule L1 cache
cache:
enabled: true
initialCapacity: 10000 # initial capacity in cache
maximumSize: 65536 # max size in cache
## rule L2 cache, use trie as L2 cache
trie:
enabled: false
cacheSize: 1024 # the number of selectors
matchMode: antPathMatch

具体使用请查看:https://shenyu.apache.org/zh/docs/next/user-guide/property-config/client-property-config

具体pr请查看:https://github.com/apache/shenyu/pull/4417

https://github.com/apache/shenyu/pull/4536

12.新增shenyu admin对prometheus的支持

具体pr请查看:https://github.com/apache/shenyu/pull/4336

13.暴露shenyu actuator端点

说明:可通过pr查看shenyu网关的内存数据

具体pr请查看:https://github.com/apache/shenyu/pull/4637

如何关闭请查看actuator配置:

management:
endpoints:
web:
exposure:
include: "*" # or health,info

增强

1.对API doc client增加tags属性

具体使用请查看:https://shenyu.apache.org/docs/user-guide/api-doc/shenyu-annotation-apidoc

具体pr请查看:https://github.com/apache/shenyu/pull/4362

2.添加Brpc的集成测试

具体pr请查看:https://github.com/apache/shenyu/pull/4319

3.Brpc支持共享线程池

具体pr请查看:https://github.com/apache/shenyu/pull/4402

4.为加密插件(cryptorRequst和cryptorResponse)增加映射类型

具体pr请查看:https://github.com/apache/shenyu/pull/4418

5.加密插件支持多个个字段加密

具体pr请查看:https://github.com/apache/shenyu/pull/4435

6.添加p2c负载均衡算法

具体pr请查看:https://github.com/apache/shenyu/pull/4451

7.使用base64生成插件字符串,并存储到插件数据中

具体使用请查看:https://shenyu.apache.org/zh/docs/next/developer/custom-plugin

具体pr请查看:https://github.com/apache/shenyu/pull/4473

8.添加最短响应负载均衡算法

具体pr请查看:https://github.com/apache/shenyu/pull/4488

9.添加hash负载均衡测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4383

10.添加DetailSerivice测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4450

11.提供宽泛的路径策略

具体配置如下:

shenyu:
switchConfig:
local: true
collapseSlashes: false #true表示开启宽泛路径支持

具体pr请查看:https://github.com/apache/shenyu/pull/4522

12.添加shenyu-common的enums包测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4541

13.添加shenyu-common的dto包测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4549/

14.添加Add shenyu-admin的model包测试用例

具体pr请查看:https://github.com/apache/shenyu/issues/4540

15.添加shenyu match cache测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4557

16.支持k8s探针

具体pr请查看:https://github.com/apache/shenyu/pull/4567

17.添加shenyu-admin的service包测试

具体pr请查看:https://github.com/apache/shenyu/pull/4579

18.在API文档中添加json支持

具体pr请查看:https://github.com/apache/shenyu/pull/4591

19.mock插件的SPEL默认为安全的

具体pr请查看:https://github.com/apache/shenyu/pull/4606

20.添加ShenyuClientApiDocExecutorSubscriber的测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4632

21.为shenyu-client-sofa模块添加测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4688

22.为shenyu api doc添加tag relation

具体pr请查看:https://github.com/apache/shenyu/pull/4362

23.添加windows下的启动、停止脚本

具体pr请查看:https://github.com/apache/shenyu/pull/4673

24.添加ShenyuSdkClientFactory的测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4645

25.添加shenyu e2e springcloud plugin的websocket同步支持

具体pr请查看:https://github.com/apache/shenyu/pull/4698

26.支持divide插件自动下线

具体pr请查看:https://github.com/apache/shenyu/pull/4702

27.添加springcloud service instance缓存

具体pr请查看:https://github.com/apache/shenyu/pull/4705

具体使用请查看:https://shenyu.apache.org/zh/docs/next/plugin-center/proxy/spring-cloud-plugin

shenyu:
springCloudCache:
enabled: false # 为true是开启springcloud缓存

28.更改密码支持i18n

具体pr请查看:https://github.com/apache/shenyu/pull/4758

29.shenyu discovery支持websocket同步

具体pr请查看:https://github.com/apache/shenyu/pull/4768

30.升级springboot版本到2.7.13

具体pr请查看:https://github.com/apache/shenyu/pull/4783

31.为e2e-springcloud添加nacos,zookeeper同步测试

具体pr请查看:https://github.com/apache/shenyu/pull/4747

32.添加api doc client注解生成属性

具体pr请查看:https://github.com/apache/shenyu/pull/4845

33.支持zookeeper客户端自动下线

具体pr请查看:https://github.com/apache/shenyu/pull/4806

34.支持Apollo client自动下线

具体pr请查看:https://github.com/apache/shenyu/pull/4855

35.支持swagger文档,并将文档存储到数据库

具体pr请查看:https://github.com/apache/shenyu/pull/4849

36.支持nacos client自动下线

具体pr请查看:https://github.com/apache/shenyu/pull/4890

37.添加alibaba dubbo e2e 测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4859

38.添加apache dubbo e2e 测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4899

39.添加shenyu spring sdk测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4913

40.添加sofa e2e测试

具体pr请查看:https://github.com/apache/shenyu/pull/4919

41.添加Apollo数据同步的测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4918

42.添加数据库的连接池配置(hakari)

具体pr请查看:https://github.com/apache/shenyu/pull/4938

43.为shenyu添加idea icon

具体pr请查看:https://github.com/apache/shenyu/pull/4951

重构

1.重构shenyu admin

具体pr请查看:https://github.com/apache/shenyu/pull/4355

2.优化least active balance算法

具体pr请查看:https://github.com/apache/shenyu/pull/4342

3.优化shenyu sign插件的第一个版本的兼容性

具体pr请查看:https://github.com/apache/shenyu/pull/4332

具体使用请查看:https://shenyu.apache.org/docs/plugin-center/security/sign-plugin

4.优化shenyu upstream check逻辑

具体pr请查看:https://github.com/apache/shenyu/pull/4386

5.优化项目的全局版本

具体pr请查看:https://github.com/apache/shenyu/pull/4394

6.优化ShenyuConsulConfigWatch的代码

具体pr请查看:https://github.com/apache/shenyu/pull/4400

7.优化shenyu前缀树匹配逻辑

具体pr请查看:https://github.com/apache/shenyu/pull/4414

8.优化rule condition提交时的校验

具体pr请查看:https://github.com/apache/shenyu/pull/4403

9.优化shenyu-client-websocket的客户端注册代码

具体pr请查看:https://github.com/apache/shenyu/pull/4462

10.添加shenyu admin依赖Micrometer的许可证

具体pr请查看:https://github.com/apache/shenyu/pull/4409

11.更新 maven-assembly-plugin打包插件到3.5.0版本

具体pr请查看:https://github.com/apache/shenyu/pull/4673

12.优化全局插件的排序

具体pr请查看:https://github.com/apache/shenyu/pull/4429

13.在shenyu admin中使用BearerToken替代StatelessToken

具体pr请查看:https://github.com/apache/shenyu/pull/4516

14.重构shenyu-logging模块

具体pr请查看:https://github.com/apache/shenyu/pull/4526

15.对api doc支持校验

具体pr请查看:https://github.com/apache/shenyu/pull/4564

16.优化shenyu前缀树,并支持*匹配

具体pr请查看:https://github.com/apache/shenyu/pull/4569

17.优化插件的热加载

具体pr请查看:https://github.com/apache/shenyu/pull/4392

18.优化ShenyuWebHandler的putPlugin方法

具体pr请查看:https://github.com/apache/shenyu/pull/4598

19.重构Shenyu webfilter

具体pr请查看:https://github.com/apache/shenyu/pull/4614

20.重构 oauth2 plguin插件

具体pr请查看:https://github.com/apache/shenyu/pull/4624

21.重构shenyu选择器的continued字段

具体pr请查看:https://github.com/apache/shenyu/pull/4635

22.重构shenyu选择和规则的匹配缓存

具体pr请查看:https://github.com/apache/shenyu/pull/4578

23.删除了shenyu客户端中未使用的泛型

具体pr请查看:https://github.com/apache/shenyu/pull/4653

24.重构shenyu对sentinel插件的支持

具体pr请查看:https://github.com/apache/shenyu/pull/4669

25.将缓存数据通过actuator端点暴露

具体pr请查看:https://github.com/apache/shenyu/pull/4637

https://github.com/apache/shenyu/pull/4658

26.重构checkUserPassword方法,启动时不打印已知错误日志

具体pr请查看:https://github.com/apache/shenyu/pull/4697

27.添加打印日志的参数

具体pr请查看:https://github.com/apache/shenyu/pull/4637

28.重构shenyu全局异常处理

具体pr请查看:https://github.com/apache/shenyu/pull/4709

29.添加了shenyu插件上传的集成测试

具体pr请查看:https://github.com/apache/shenyu/pull/4679

30.优化语法糖

具体pr请查看:https://github.com/apache/shenyu/pull/4700

31.优化discovery_upstream的discovery_handler_id字段

具体pr请查看:https://github.com/apache/shenyu/pull/4710

32.重构shenyu-plugin模块,将proxy插件分类归档

具体pr请查看:https://github.com/apache/shenyu/pull/4765

33.重构AlibabaDubboConfigCache的缓存

具体pr请查看:https://github.com/apache/shenyu/pull/4772

34.移除hutool的依赖

具体pr请查看:https://github.com/apache/shenyu/pull/4773

35.重构ShenyuClientShutdownHook

具体pr请查看:https://github.com/apache/shenyu/pull/4780

36.Extractor添加BaseAnnotationApiBeansExtractor

具体pr请查看:https://github.com/apache/shenyu/pull/4787

37.支持多客户端注册

具体pr请查看:https://github.com/apache/shenyu/pull/4790

38.重构Shenyu-e2e支持Shenyu的check style

具体pr请查看:https://github.com/apache/shenyu/pull/4799

39.优化shenyu客户端注册逻辑

具体pr请查看:https://github.com/apache/shenyu/pull/4809

40.添加shenyu divide插件的域名测试

具体pr请查看:https://github.com/apache/shenyu/pull/4803

41.更新rpc_ext字段的扩展

具体pr请查看:https://github.com/apache/shenyu/pull/4821

42.优化consul的连接操作

具体pr请查看:https://github.com/apache/shenyu/pull/4832

43.重构shenyu e2e的springcloud的yaml添加方式

具体pr请查看:https://github.com/apache/shenyu/pull/4837

44.为k8s ingress controller添加集成测试

具体pr请查看:https://github.com/apache/shenyu/pull/4820

45.拆分apidoc明细接口的document字段,增加requestHeaders、responseParameters等字段

具体pr请查看:https://github.com/apache/shenyu/pull/4865

46.加swagger示例项目,测试API文档的相关功能

具体pr请查看:https://github.com/apache/shenyu/pull/4825

47.优化shenyu admin的json格式表单字段的显示

具体pr请查看:https://github.com/apache/shenyu/pull/4873

48.重构shenyu日志可观测性

具体pr请查看:https://github.com/apache/shenyu/pull/4874

49.添加bootstrap启动日志

具体pr请查看:https://github.com/apache/shenyu/pull/4879

50.重构swagger的api文档

具体pr请查看:https://github.com/apache/shenyu/pull/4892

51.升级grpc版本至1.53.0

具体pr请查看:https://github.com/apache/shenyu/pull/4841

52.重构api元数据处理函数

具体pr请查看:https://github.com/apache/shenyu/pull/4948

53.优化代码和pom依赖

具体pr请查看:https://github.com/apache/shenyu/pull/4945

Bug修复

1.优化h2的路径

具体pr请查看:https://github.com/apache/shenyu/pull/4351

2.修复加密响应插件的调用错误

具体pr请查看:https://github.com/apache/shenyu/pull/4331

3.修复jdk8 Map computeIfAbsent性能bug

具体pr请查看:https://github.com/apache/shenyu/pull/4338

4.修复zombieRemovalTimes代码

具体pr请查看:https://github.com/apache/shenyu/pull/4368

5.修复升级后的sql错误

具体pr请查看:https://github.com/apache/shenyu/pull/4374

6.删除detectorOfflineLinks标签

具体pr请查看:https://github.com/apache/shenyu/pull/4382

7.忽略扁平化的pom

具体pr请查看:https://github.com/apache/shenyu/pull/4390

8.修复LOG调用方法

具体pr请查看:https://github.com/apache/shenyu/pull/4387

9.使用nacos修复sheyu-example-springcloud的NPE

具体pr请查看:https://github.com/apache/shenyu/pull/4396

10.修复 Shenyu-admin名称的类型争论

具体pr请查看:https://github.com/apache/shenyu/pull/4340

11.修复负载平衡spi资源

具体pr请查看:https://github.com/apache/shenyu/pull/4411

12.修复sql脚本错误

具体pr请查看:https://github.com/apache/shenyu/pull/4412

13.修复jackson的24小时格式和时区

具体pr请查看:https://github.com/apache/shenyu/pull/4413

14.修复JwtUtils错误

具体pr请查看:https://github.com/apache/shenyu/pull/4420

15.修复dubbo调用者缓存bug

具体pr请查看:https://github.com/apache/shenyu/pull/4433

16.修复丢失HOST的删除操作

具体pr请查看:https://github.com/apache/shenyu/pull/4425

17.修复SpringMvcClientEventListener测试用例

具体pr请查看:https://github.com/apache/shenyu/pull/4252

18.修复zombie更新PENDING_SYNC的错误

具体pr请查看:https://github.com/apache/shenyu/pull/4430

19.修复windlfu的内存泄漏

具体pr请查看:https://github.com/apache/shenyu/pull/4486

20.修复因规则过多导致规则查询失败的问题

具体pr请查看:https://github.com/apache/shenyu/pull/4499

21.修复示例http中缺少执行器依赖项和端口错误

具体pr请查看:https://github.com/apache/shenyu/pull/4506

22.修复UpstreamCheckUtils的http和https错误

具体pr请查看:https://github.com/apache/shenyu/pull/4509

23.修复FileFilter造成内存泄漏的问题

具体pr请查看:https://github.com/apache/shenyu/pull/4507

24.修复zookeeper同步错误

具体pr请查看:https://github.com/apache/shenyu/pull/4906

25.修复MemorySafeWindowTinyLFUMap内存泄漏错误

具体pr请查看:https://github.com/apache/shenyu/pull/4524

26.修复ApiDoc路径缺少分隔符的问题

具体pr请查看:https://github.com/apache/shenyu/pull/4528

27.修复 shenyu trie的NPE

具体pr请查看:https://github.com/apache/shenyu/pull/4533

28.修复插件跳过错误

具体pr请查看:https://github.com/apache/shenyu/pull/4589

29.修复oracle sql错误

具体pr请查看:https://github.com/apache/shenyu/pull/4595

30.修复shenyu admin中无法加载shenyu图标的问题

具体pr请查看:https://github.com/apache/shenyu/pull/4605

31.修复hystrix fallback的bug

具体pr请查看:https://github.com/apache/shenyu/pull/4593

32.修复divide和springcloud的预热时间

具体pr请查看:https://github.com/apache/shenyu/pull/4619

33.修复springcloud服务选择器

具体pr请查看:https://github.com/apache/shenyu/pull/4639

34.修复 shenyu-spring-boot-starter-plugin-mock添加spring.factories

具体pr请查看:https://github.com/apache/shenyu/pull/4644

35.修复 shenyu-client-mvc和shenyu-client-springcloud丢失ip

具体pr请查看:https://github.com/apache/shenyu/pull/4681

36.修复缓存中规则数据和选择器数据为空的问题

具体pr请查看:https://github.com/apache/shenyu/pull/4716

37.修复api文档模块更新api详情错误

具体pr请查看:https://github.com/apache/shenyu/pull/4720

38.修复从KafkaLogCollectClient中的配置获取topic

具体pr请查看:https://github.com/apache/shenyu/pull/4756

39.修复loggingConsole插件的线程安全问题

具体pr请查看:https://github.com/apache/shenyu/pull/4763

40.修复brpc集成测试响应大小

具体pr请查看:https://github.com/apache/shenyu/pull/4784

41.修复plugn-dubbo-common的选择器更新灰色发布删除缓存的问题

具体pr请查看:https://github.com/apache/shenyu/pull/4762

42.修复shenyu admin菜单名称bug

具体pr请查看:https://github.com/apache/shenyu/pull/4805

43.修复shenyu admin无法配置consul端口的问题

具体pr请查看:https://github.com/apache/shenyu/pull/4843

44.修复shenyu客户端元数据和uri无法与apollo同步到admin的问题

具体pr请查看:https://github.com/apache/shenyu/pull/4851

45.修复PathVariable注解url无法匹配的问题

具体pr请查看:https://github.com/apache/shenyu/pull/4852

46.修复PathPattern模式下无法更新uri的问题

具体pr请查看:https://github.com/apache/shenyu/pull/4854

47.修复客户端关闭方法调用两次

具体pr请查看:https://github.com/apache/shenyu/pull/4867

48.修复 shenyu 错误处理 consul 配置

具体pr请查看:https://github.com/apache/shenyu/pull/4872

49.从Request、modifyResponse插件中删除未使用的配置

具体pr请查看:https://github.com/apache/shenyu/pull/4882

50.修复http注册元数据错误

具体pr请查看:https://github.com/apache/shenyu/pull/4889

51.修复websocket丢失用户自定义关闭状态的问题

具体pr请查看:https://github.com/apache/shenyu/pull/4844

52.修复consul寄存器在特殊符号时丢失元路径的属性

具体pr请查看:https://github.com/apache/shenyu/pull/4885

53.修复etcd同步错误

具体pr请查看:https://github.com/apache/shenyu/pull/4911

54.修复shenyu admin多次同步事件错误

具体pr请查看:https://github.com/apache/shenyu/pull/4941

55.修复 Shenyu motan插件执行错误

具体pr请查看:https://github.com/apache/shenyu/pull/4934

贡献者

特别感谢以下贡献者对 2.6.0版本的支持和参与(排名不分先后)。

midnight2104,koonchen,847850277,balloon72,yu199195,iwangjie,damonxue,tian-pengfei,caojiajun,dragon-zhang,u3breeze,li-keguo,SuperMonkeyC,mahaitao617,tomsun28,moremind,liaolzy,Ceilzcx,misaya295,BoyuLi4,HaiqiQin,starlight2003,stulzq,ywj1352,yunlongn,aFlyBird0,dengliming,plutokaito,xuyicheng1995,lan-dian,sachin10fi,zuobiao-zhou, hudongdong129,crudboy,aoshiguchen,VampireAchao,JooKS-me,Redick01,huanccwang,lijay7674,omernaci,peng-heng,December-Pb,6freeair2016,jieyangxchen,lianjunwei,u3breeze,eurecalulu,wanyaoasiainfo,wanyaoasiainfo,Kakk22,xuziyang,menglujing,xcsnx,yu1183688986,lahmXu,fabian4,ileonli,VampireAchao,GOODBOY008,TeslaCN

成为贡献者

我们欢迎每一位贡献者的加入ShenYu,欢迎贡献者以Apache Way的精神参与ShenYu!

贡献者指南请参考:

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

· One min read

个人介绍

姓名:秦海棋

学校:东北大学

角色: Apache ShenYu Committer

邮箱:haiqi@apache.org

github:https://github.com/HaiqiQin

初遇shenyu

最早接触shenyu是经同学朱坤帅(jooks-me)的介绍,当时坤帅已经在社区做过了很多贡献,有一定的经验。在介绍我进入shenyu社区后,他不断的指点着我,带领我了解项目,讲解社区的相关规约,在他的鼓励下我提交了人生中第一个有关开源项目的pr。之后的日子里,我主要尝试研读shenyu的代码,同时修改一些小的错误,做一些插件的单元测试或者集成测试。

渐至佳境

作为一名开发,当然不希望自己对shenyu的贡献仅限于测试类型任务。正逢shenyu报名了谷歌开源之夏(Google Summer of Code)活动,所以我积极查看议题,最终决定参加shenyu-plugin-logging-elasticsearch课题。在肖宇老师(猫大人)耐心的指导下,我最终完成了课题,如愿以偿地为shenyu提交了开发相关的代码。通过这次课题,我更好地了解了shenyu,同时内心更渴望继续为shenyu贡献代码。在这之后我尝试向shenyu贡献了两个负载均衡的策略,目前以及后续会对shenyu-e2e模块进行贡献。

收获满满

  • 了解到更多有关网关以及为服务方面的知识

  • 学习到了不同注册中心的注册原理

  • 学习到了不同数据同步方式的同步原理

  • 学习到了如何编写更优雅的代码

一些建议

  • 学会阅读官方文档。现在文档已经相当完善了,基本能够覆盖用户的需求。
  • 参加周会。shenyu每双周会开一次例会,在例会上会介绍项目目前的开发进度,小伙伴们可以选取自己感兴趣的任务进行开发,也可以和大佬们交流技术。

特别鸣谢

我一直认为shenyu是一个有温度的大家庭,在我遇到困难的时候,很多小伙伴都对我提供了很大的帮助,使我在贡献的时候少走了很多弯路。在此感谢帮助过我的小伙伴(以下排名不分先后):yu199195,moremind,JooKS-me,erdengk,qifanyyy。

· One min read

[开源之夏】Apache ShenYu e2e课题来袭 | 邀您深耕高性能网关

开源之夏

开源之夏是由中科院软件所开源软件供应链点亮计划发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。

学生开启报名

开源之夏 2023 学生报名 4 月 29 日正式开启啦!同学们可以在开源之夏官网 https://summer-ospp.ac.cn/ 挑选项目,与导师沟通并准备项目申请材料、提交申请。

ospp-2023.jpg

Apache ShenYu简介

Apache ShenYu是一款支持多语言、多协议(Dubbo,SpringCloud,gRPC,Motan,SofaTars, BRPC)、插件化设计、高度可动态化配置、高度可自主化开发的Java网关。内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。流量配置动态化,性能极高。支持集群部署,支持 A/B Test,蓝绿发布等功能。

Apache ShenYu社区作为Apache基金会组织下的开源项目社区。截止目前在全球共聚集了340位贡献者,他们以“Apache Way”的精神参与ShenYu,为ShenYu做出贡献,与ShenYu共同成长!

Apache ShenYu课题项目介绍

课题任务门槛不会太高的哦,且全程由社区导师倾心指导。

项目背景

Shenyu是一个异步的,高性能的,跨语言的,响应式的API网关,但目前ShenYu缺少必要的end to end engine以及test case, end to end test是shenyu项目整体贯通的重要部分。

相关技能

了解Apache ShenYu的技术架构,了解Apache ShenYu的端到端测试框架,能够利用现有代码编写TestSpec,需要了解shenyu的数据同步框架包括websocket,http,zookeeper,nacos,apollo等中间件以及算法,能够编写docker-compose,了解testcontainer,docker等e2e开发必备工具。

相关任务

1.编写shenyu端到端测试框架,编写shenyu端到端测试引擎(难度:高)

2.需要在e2e中实现admin不同数据库(mysql,oracle,postgres,h2)的存储,保证数据存储正确

3.需要通过配置方式以及shenyu-client注册方式保证数据能够正确添加到shenyu-admin(难度:高)

4.使用不同的数据同步方式(websocket,http,zookeeper,nacos,apollo)保证admin到gateway的数据同步正确

5.添加alibaba dubbo,apache dubbo,sofa,tars,motan相关代理插件的端到端测试用例

6.编写特定的TestSpec修改admin字典,元数据,插件,选择器,规则数据,并且在修改后进行回归测试,保证调用逻辑正确(难度:高)

7.编写对应github ci文件,保证ci流程在github action运转正常

项目产出要求

1.编写对应的e2e测试用例

2.使用e2e实现admin使用不同的数据库存储数据的测试

3.实现不同数据同步方式同步数据的端到端测试

4.编辑对应的e2e文档

项目技术要求

1.遵循shenyu代码规范

2.深入理解spring webflux

3.深入理解shenyu的数据同步原理

4.深入理解shenyu client注册数据原理

5.深入了解shenyu的端到端测试引擎以及框架

项目成果仓库

项目地址

其他信息

你能从活动中获得什么?

开发经历

参与开源项目,成为大型开源项目的贡献者,了解多领域多难度梯度任务,给你丰富的大型开源项目实战经验,同时也是锻炼开发能力的好机会!

组委会奖励

1.你将获得结项奖金和结项证书:通过结项考核的学生将有机会获得优秀学生证书。

2.本次比赛共设有两个难度等级,不同等级对应不同奖金:

进阶难度:学生结项奖金税前人民币 12000 元

基础难度:学生结项奖金税前人民币 8000 元

本次比赛的奖金均由开源之夏组委会提供。

Apache ShenYu社区深度交流

1.参与开源之夏@Apache ShenYu课题,你将能够同Apache ShenYu社区全球300+位贡献者交流。

2.参与开源之夏@Apache ShenYu课题,你将成为Apache ShenYu贡献者,在持续贡献者之后,更有机会成为Apache ShenYu Committer。

快速参与开源之夏

开源之夏2023 社区各项目课题将从4月29日开始接受学生参与项目申请,欢迎通过上方联系方式,与各导师沟通并准备项目申请材料。

shenyu-ingress-controller能力增强

项目背景

Kubernetes Controller是Apache ShenYu云原生建设的重要步骤,社区正在建设shenyu-ingress-controller,以实现K8s ingress资源的对接。但是,目前shenyu-ingress-controller功能较为简单,仅支持K8s ingress原生的资源定义。

本项目需要基于annotation拓展shenyu-ingress-controller,尽可能地继承Apache ShenYu丰富的原生功能。

项目产出要求

  • 增强shenyu-ingress-controller的能力

  • 完成核心代码的编写

  • 完成相应单元测试和集成测试

  • 完成相关文档

项目技术要求

  • 熟悉Java和Spring Framework
  • 熟悉Kubernetes
  • 了解API网关

项目成果仓库

项目地址

https://summer-ospp.ac.cn/org/prodetail/2362f0183

其他信息

[开源之夏】Apache ShenYu tcp代理来袭 | 邀您深耕高性能网关

开源之夏

开源之夏是由中科院软件所开源软件供应链点亮计划发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。

学生开启报名

开源之夏 2023 学生报名 4 月 29 日正式开启啦!同学们可以在开源之夏官网 https://summer-ospp.ac.cn/ 挑选项目,与导师沟通并准备项目申请材料、提交申请。

ospp-2023.jpg

Apache ShenYu简介

Apache ShenYu支持各种语言(http 协议),支持 Dubbo、 Spring Cloud、 gRPC、 Motan、 Sofa、 Tars 等协议。插件化设计思想,插件热插拔,易扩展。灵活的流量筛选,能满足各种流量控制。内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。流量配置动态化,性能极高。 支持集群部署,支持 A/B Test,蓝绿发布的Java网关。

Apache ShenYu课题项目介绍

课题任务门槛不会太高的哦,且全程由社区导师倾心指导。

项目背景

本项目主要是通过插件的方式更加灵活地、可拓展地实现不同通信协议(TCP/UDP/WebSocket等)的代理,以增强ShenYu的通信代理功能。项目提供管理后台可手动配置转发下游的IP、PORT等数据,同时支持下游服务通过ShenYu客户端自动注册ShenYu网关,此外也支持业务提供注册中心地址来完成服务发现和注册功能。业务请求进来时,ShenYu网关根据不同的通信协议类型,匹配不同的通信协议插件来完成通信代理。

相关技能

了解Apache ShenYu的技术架构,熟悉Java和Spring Framework,熟悉reactor等前端组件和框架,熟悉API网关,熟悉tcp、udp等相关协议。

项目产出要求

完成tcp/udp/websocket等代理插件的开发

Task1:完成tcp/udp/websocket的用来代理到下游服务的代理插件功能开发;

✅ 完成注册中心监听元数据的开发

Task1:在shenyu-admin开发支持的多种注册中心(nacos/consul/zk等)监听业务下游服务相关元数据;

✅ 完成代理插件相关元数据的数据同步开发

Task1:完成通信插件代理相关数据同步到网关的开发;

✅ 完成和设计服务自动发现相关表和后台数据开发

Task1:完成相关数据库表设计;

Task2:完成相关表的CRUD开发;

✅ 完成shenyu管理后台通信代理相关数据的编辑

Task1:前端增加编辑通信代理相关元数据的编辑新增页面;

Task2:增加前端页面对应的后端接口;

✅ 完成通信协议代理的集成测试单元测试和文档输出

Task1:完成相关改动的单元测试;

Task2:完成整个功能的集成测试;

Task3:完成整个功能相关接入文档以及功能介绍相关文档的输出。

项目技术要求

1.熟悉Java和Spring Framework

2.熟悉reactor等前端组件和框架

3.熟悉API网关.

项目成果仓库

项目地址

导师邮箱

mahaitao@apache.org

快速参与开源之夏

开源之夏2023 社区各项目课题将从4月29日开始接受学生参与项目申请,欢迎通过上方联系方式,与各导师沟通并准备项目申请材料。

ospp-2023.jpg