欢迎来自滴滴出行的 Hippo4j 新晋社区 Committer — 严荣振,让我们一起了解一下他的开源经历吧!
自我介绍
姓名: 严荣振
现从事: 滴滴出行 – 能源技术部 – 高级软件开发工程师
GitHub ID:https://github.com/yanrongzhen
能力标签:Java
,Spring
,Java Agent
开源经历:
- OpenGoofy Hippo4j Committer
- Apache ShardingSphere Contributor
- Apache EventMesh Contributor
如何与 Hippo4j 结缘?
荣振从 2022 年 3 月开始接触 Hippo4j,刚开始是出于负责的项目需要实时调整动态线程池参数,以调试线上环境的最佳参数,然而公司内部没有提供这种能力。
在通过 GitHub 首次了解到了 Hippo4j 之后,结合公司内部的中间件进行了打通和落地使用,也正是在使用与定制的过程中,荣振对于 Hippo4j 的设计理念和源码有了深入的了解,而这也是驱动他进行代码贡献的前提。
在加入 Hippo4j 社区后,主要负责什么?
从 2022 年 10 月提交第一个 PR 并被社区合入,至今已持续贡献一年左右的时间,贡献了 27 PR 并被社区成功合并,以下是他的核心贡献列表:
- 完成 Hippo4j Java Agent 内核&线程池动态变更插件的开发
- 实现在配置中心模式下的 SPI 通知/报警能力 (#1124)
- 适配 Spring Boot 1.x 版本 (#1106)
- 扩展点 SPI 执行逻辑重构优化 (#1092)
- 去除 OkHttp3 客户端相关依赖 (#766)
- 修改 Web 容器配置命名方式 (#1016)
- Hippo4j GitHub 首页架构图优化
- Hippo4j GitHub Issue模板优化
其中 Hippo4j Java Agent 模块,荣振在短短一个月时间内从零到一独立完成一万行左右的 Agent 内核以及相关上层插件开发,是 Hippo4j 下一个 2.0 大版本的重要里程碑.
荣振对于编码风格有着极高的自我要求,同时喜欢钻研各类优秀源码,学习其中的优秀设计思想并运用到具体实践当中,"Talk is cheap,Show me the code"
是他的编程座右铭.
参与 Hippo4j 贡献后,对开源有没有产生新的理解?
参与 OpenGoofy Hippo4j 社区的建设,对其个人而言不只是在技术层面的提高,更多是一种思维层面的升华。相较于『一次性代码』,在写代码之前会先从系统层面思考前后关系,产出设计图,减少后期复工以及降低与他人之间的协作成本。
这一点在开源社区中尤为重要。尤其是在加入到开源社区之后,更是了解到代码并不是给自己看的,除了能够让电脑读懂之外,更要让社区中的其它开发者能够看懂。
尤其是对于 openGoofy Hippo4j 这样一个在 知乎、新东方、网易、吉利汽车等 20+ 中大型互联网公司,在单机最高 6000QPS+ 的线上环境运行的项目而言,代码是需要被放到放大镜下去观察的。代码的质量、优雅程度,很大程度上决定了别人在使用 openGoofy Hippo4j 时需要做出多少修改,这对于项目本身而言也是非常有价值的。
这也正是 Hippo4j 希望能够通过社区本身开放的特质,对工程师在思维层面所带来的最大的价值与启发。
如何参与 Hippo4j 开源贡献?
许多人都认为开源是大牛们的专场,但其实这个观点是错误的。
从荣振的贡献之路上看,他从最简单的代码写法优化、编写文档和测试用例,再到 Spring Boot 版本适配,再到报警通知核心流程开发,最后再到贡献 Java Agent 内核&线程池相关插件,通过一点一滴的贡献与进步,最终被社区大多数成员认可,成功入选社区 Committer 行列。
开源没有划分能力强弱的限制,对于社区来说不一定需要你去贡献核心代码,小到修复文档的格式错误或者开发简单的单元测试,都是对开源社区的一种贡献。在这个持续贡献的过程中,会让开发者找到开源的价值以及对自我的肯定。
成为 Committer 的第一步,是跨过心里的那道坎,从想象转换为实际行动。
什么是 Hippo4j?
异步线程池框架,支持线程池动态变更&监控&报警,无需修改代码轻松引入。
全方面武装你的线程池,提供以下功能支持:
- 全局管控 – 管理应用线程池实例,避免线程池混乱使用。
- 动态变更 – 应用运行时动态变更线程池参数,包括但不限于:核心、最大线程数、阻塞队列容量、拒绝策略等。
- 通知报警 – 内置四种报警通知策略,线程池活跃度、容量水位、拒绝策略以及任务执行时间超长。
- 运行监控 – 实时查看线程池运行时数据,自定义时间内线程池运行数据图表展示。
- 功能扩展 – 支持线程池任务传递上下文;项目关闭时,支持等待线程池在指定时间内完成任务。
- 容器管理 – Tomcat、Jetty、Undertow 容器线程池运行时查看和线程数变更。
- 三方框架适配 – Dubbo、Hystrix、RabbitMQ、RocketMQ 等消费线程池运行时数据查看和线程数变更。
Hippo4j 整体技术架构如下所示:

目前已登记在生产环境使用的公司有 45 家,涵盖支付、打车、银行、金融、租房等多个领域。
如果您公司有适用场景,可以放心使用。使用公司中最高单节点经历 QPS 3w+,性能与未使用 Hippo4j 相差无几。
GitHub:https://github.com/opengoofy/hippo4j
Gitee:https://gitee.com/opengoofy/hippo4j
文末小彩蛋,Hippo4j 即将发布 2.0 版本,这将会是一个颠覆性的突破。你敢想不改一行代码就能增强项目线程池,并拥有动态变更、运行报警以及监控采集等功能?
GitHub 上给 Hippo4j 点个 Star,一起期待 2.0 的发布吧。
阅读原文