Skip to main content

【我的 Apache 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 社区中来,一起为开源事业添砖加瓦。