Committer 郭吉伟专访:做开源不是搞慈善,用开源也不是薅羊毛
踩着 11 月的尾巴,Apache Pulsar 迎来了一位新 committer——郭吉伟。郭吉伟目前在 StreamNative 做 Pulsar 主项目与其周边生态的开发工作,也是 MoP(MQTT-on-Pulsar)的 maintainer。同时,他也是 Apache DolphinScheduler 的 PMC 成员。我们采访了这位拥有多重身份的开源人,与他聊一聊在 Apache Pulsar 社区的经历和感想。(以下内容采用第一人称。)
个人简介
大家好,我是郭吉伟,很荣幸成为 Apache Pulsar committer 并通过采访与大家见面。我目前在 StreamNative 做 Pulsar messaging 相关的开发工作,主攻 MoP(MQTT-on-Pulsar),也是 MoP 项目的 maintainer。
“古早” Pulsar 项目爱好者
我应该是国内很早期了解到 Pulsar 的那批人了。Pulsar 中文社区在 2019 年成立,然而我和 Pulsar 的缘分可以追溯到 2016 年。当时公司的基础架构使用的是 RocketMQ,我通过开源了解到更多的 MQ 产品,于是早在 2016 年就入门了解了 Pulsar 这个项目。
后来我加入陌陌的基础架构组。当时陌陌用 Kafka 出现了很多运维困难,比如扩缩容、异步报错等。我们调研了 Pulsar 并开始部署使用 Pulsar。在此期间我参与了多次社区 meetup,接触到了许多资深的 Pulsar 开发者与用户,让我加深了对项目、社区的了解,也奠定了后续成为“全职开源人”的基础。
全职做开源—— Pulsar 开发者
有人问我为什么加入 StreamNative 去全身心地围绕 Pulsar 投入开源。首先因为我看好 Pulsar 技术的前沿性,在云原生的潮流下,Pulsar 存储计算分离的分布式架构最符合当下企业数字化需求。
第二个原因源自 Pulsar 社区。因为前公司的系统转型,以及个人多次参加社区 meetup、直播等活动,我有幸和社区多位开发者和资深用户面对面交流,尤其在和 Pulsar 中文社区的两位领头人翟佳、李鹏辉的交谈中获益匪浅。整个社区技术氛围浓厚,和一群同样专注于技术的人交流是一件极度舒适的事情。我也受大家的信念感感染,越发认可 Pulsar 的技术和它为大数据环境下的企业带来的价值。
做开源不是搞慈善,用开源也不是薅羊毛
有人也会对我的职业产生质疑:既然开源代码是公开的,那你们不就是在做慈善、让大家免费薅羊毛吗?对于这个观点我是完全不赞同的。
从我个人经历来谈,我有幸每个就职公司所在团队的技术氛围都很浓厚,大家不仅仅是开源的用户,在使用过程中整个团队都会主动学习并且提交代码去参与、支持该开源项目。我从 2016 年开始为开源项目贡献代码,到了 2019 年,我的业余时间就都用来混迹在开源社区了。我先是参加了 Uber 开源的 uReplicator 项目,完成了 Kafka 生态的多机房迁移;然后成为了 Apache DolphinScheduler 早期项目成员,目前是该项目 PMC 成员;后来又钻研 ElasticJob,成为 ElasticJob committer;现在又当选了 Apache Pulsar committer。用开源、贡献开源可以帮助一个人快速提升技术能力,好的项目都是开源的。在开源社区,不论你的身份是开发者还是用户,都可以从伙伴以及对方身上学到很多东西。
在成为 Apache Pulsar 开发者的近半年时间里,每天和行业最前沿的开发人员、社区大佬交流,我对项目和消息领域前沿技术的领悟更加深刻了。作为一名专注于自身成长的技术人,这无疑是极大的成就感与喜悦了。伴随认知的加深,我也逐渐地可以通过自己的能力更好地为社区提供帮助,并且带动其他人参与项目与生态。目前我主要负责的 MoP 项目就有几位外部的开发者在积极带头贡献。
资深开源人带你混迹 Pulsar 社区
相对于其他的系统,Pulsar 是一个纯异步化的编程模型,这种模型在国内市场比较年轻,需要通过比较前卫、先进的思维去理解。在 Pulsar 进入大众视线之前,其他 MQ 存储模型比较简单,而 Pulsar 天生云原生、分布式的架构是一门先进的技术:存储和 broker 全是分布式,每一个环节都是分布式,都是云原生概念,理解起来有一定的门槛。
Pulsar 是一个很大的项目,门槛较高,因为虽然它跑起来容易,但用好难。大家都可以轻松地很快将整个系统运行起来,然而遇到问题后可能要纠结很长时间。因此我建议大家在接触 Pulsar 的前期看技术文档。社区有些人吐槽 Pulsar 的文档不如几个前辈项目,在我看来,Pulsar 的文档可能不适合业务人员,然而从开发和运维的角度看,Pulsar 的文档写的很棒。
然后要坚持读源码、看 issue,带着一个 issue 去了解项目,并且通过交流群里的问答去学习;如果身边有了解 Pulsar 的人,也可以就近请教大佬。现在比较好的一点是,Pulsar 也有了自己的中文书籍,方便我们来攻克这个项目。
初步的贡献可以从修复 bug 入手,比如修复 NPE、flaky test 等。Pulsar GitHub 代码仓库有很多带着 help wanted
标签的 issue,不失为第一个 Pulsar PR 好的开始。
Committer 感言
我不得不感叹一下:Pulsar 社区发展太快,进入社区的门槛越来越高了。在今年,Pulsar 社区代码活跃度已经赶超了 Kafka,我希望 Pulsar 的代码活跃度蒸蒸日上,也希望 Pulsar 也能在大家的共同努力下,成为云原生消息领域的一匹遥遥领先的黑马。
以我现在的能力,距冲击 Pulsar PMC 成员还有一段距离。我想付出更多的精力,不断优化自身的技术水平,通过 committer 的身份帮助更多的人参与 Pulsar。
加入 Apache Pulsar 社区
参与开源,可以获得公司及社区内外的认可,结交来自各个领域、志同道合的小伙伴;同时也可以提高个人影响力,促进个人发展。参与开源不是码农的专属,社区、文档等各个方面都可以让大家发挥一技之长。
作为全球性开源项目,截至目前,Apache Pulsar 已拥有近 470 名贡献者、10.0K+ Star 、2.5 K+ Fork 。我们为大家提供了参与指南,欢迎越来越多的小伙伴助力 Apache Pulsar 项目的不断发展与前进。
•Apache Pulsar 官方贡献指南[1]
相关阅读
•Function Mesh 开发工程师付睿:用户——开发者——Committer 之路引用链接
[1]
Apache Pulsar 官方贡献指南: http://pulsar.apache.org/en/contributing/
▼ 关注「Apache Pulsar」,获取干货与动态 ▼
👇🏻 加入 Apache Pulsar 中文交流群 👇🏻
本文分享自微信公众号 - ApachePulsar(ApachePulsar)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
基于MRS-Hudi构建数据湖的典型应用场景介绍
摘要:华为云FunsionInsight MRS已集成Apache Hudi 0.8版本,基于MRS-Hudi构建数据湖解决方案。 本文分享自华为云社区《基于MRS-Hudi构建数据湖的典型应用场景介绍》,作者:受春柏。 一、传统数据湖存在的问题与挑战 传统数据湖解决方案中,常用Hive来构建T+1级别的数据仓库,通过HDFS存储实现海量数据的存储与水平扩容,通过Hive实现元数据的管理以及数据操作的SQL化。虽然能够在海量批处理场景中取得不错的效果,但依然存在如下现状问题: 问题一:不支持事务 由于传统大数据方案不支持事务,有可能会读到未写完成的数据,造成数据统计错误。为了规避该问题,通常控制读写任务顺序调用,在保证写任务完成后才能启动读任务。但并不是所有读任务都能够被调度系统约束住,在读取时仍存在该问题。 问题二:数据更新效率低 业务系统库的数据,除流水表类的数据都是新增数据外,还有很多状态类数据表需要更新操作(例如:账户余额表,客户状态表,设备状态表等),而传统大数据方案无法满足增量更新,常采用拉链方式,先进行join操作再进行insert overwrite操作,通过覆盖写的方...
- 下一篇
Go语言逆向技术:恢复函数名称算法
摘要:在对程序做安全审计、漏洞检测时,通常都需要对程序做逆向分析,本文在没有符号表的情况下,提出了一种恢复函数名称的算法,方便对go语言二进制文件进行逆向分析,提升分析效率。 本文分享自华为云社区《go语言逆向技术之---恢复函数名称算法》,作者:安全技术猿。 go语言是最近几年发展非常火的一种语言,它具备和C/C++一样的运行速度快的优点,同时又具备开发效率高,支持包管理机制高阶语言特点。其编译出来的二进制文件格式和C/C++一样运行在Linux平台下是elf格式,运行在windows平台下是pe格式,但同时在二进制文件的内部细节上go语言有自己特有的属性,二进制逆向人员可以利用go语言这些特有属性来来实现对二进制文件进行更精准的逆向分析。 特性1:利用go语言中特有的节信息来判断elf/pe文件的源代码语言类型,是go语言还是C、c++语言。 通过判断二进制文件中是否存在“.noptrdata”、“.gopclntab”、“.data.rel.ro.gopclntab”确定源代码,如果存在上述节名称,则源代码为go语言; 特性2:在没有符号表的情况下如何恢复函数名称。 我们知道在C...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 2048小游戏-低调大师作品
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果