来源:Gitee 封面人物 丨 2021-08-02
本期嘉宾
肖宇 :Apache ShenYu(incubating)网关创始人,dromara.org开源社区创始人。 Hmily,Raincat,Myth等分布式事务框架作者。追求写优雅代码,乐于分享和帮助他人。
Apache ShenYu(incubating) :应用于所有微服务场景的,可扩展、高性能、响应式的 API 网关解决方案。2021年5月3日,经过 Apache Incubator 的投票,正式步入 Apache 基金会孵化器。
肖宇: 我是在2018年6月写下 Apache ShenYu(incubating)网关的第一行代码,刚开始基本是我一个人在维护开发,以及一些圈内朋友的公众号会帮忙发布文章去介绍项目,让更多知道这个项目。我的心态非常开放,虽然追求写优雅代码,但我也经常犯错,我希望有更多的人来改正我的错误。慢慢的,有许多社区的志愿者在了解和使用的过程中,参与了进来,改正了我的错误并提供了很多解决方案,功能也越来越完善,形成了比较好的循环。 目前有 120+ 模块,10+ 的活跃 Committer,以及 100+ 的贡献者 。在这里再次感谢每一个为项目做出贡献的人,也欢迎爱好开源的你加入我们社区。
Apache ShenYu(incubating)整体架构
肖宇: 最开始写这个项目的时候,是我和几个朋友一起在创业,那时候我们主要是想解决 http 协议转 dubbo 协议的问题,以及如何对流量进行灵活的控制的同时能够及时生效。我们最开始想参考 Kong,考虑到以后的生态,以及 Lua 语言不是我的强项,而 Java 领域 Reactor 响应式编程思想大放异彩,我又比较喜欢尝试新的东西,所以就决定基于 WebFlux 来写一个网关。
肖宇: ShenYu (神禹)是我们古代君王夏禹的尊称(后世也尊称大禹),为造福百姓,成功治理黄河水患,留下了三过家门而不入的感人故事。其和尧舜并称为中国古代最伟大的三位君王。
首先,取名为ShenYu是弘扬我们中华文明的传统美德;其次,网关最最重要的是对流量的治理;最后,社区将会以公平,公正,公开,任人唯贤的做事方式,致敬神禹的同时也非常符合Apache Way。
肖宇: 缘自 2018 年在深圳的一次技术峰会,我有幸认识了姜宁老师。那时候我陆续写了 Hmly,Myth 等分布式事务的框架,正打算开源 ShenYu 网关。而姜老师是 Apache 孵化器导师,通过与姜老师的交流和交谈过程中,学习到了什么是 Apache Way,以及如何通过 Apache Way 运营开源项目,构建开放治理的社区。
在 ShenYu 项目中,我借鉴 Apache Way 的思路,发展到现在积累了越来越多的贡献者与用户,在与社区大多数的提交者和贡献者交流后,达成一致,把项目捐献给 Apache 基金会,走上正规的 Apache Way 就是我们往后需要走的路。随后我们联系到姜宁老师(Apache Member),给我们做引路人兼导师。又联系了孙金城老师(Apache Member),张铎老师(Apache Member)给项目当导师,在导师耐心的指导和热心的帮助下,完成了孵化器提案,孵化器讨论,孵化器投票等流程,顺利进入 Apache 孵化器。
Apache ShenYu(incubating)进入 Apache 孵化器的投票结果
肖宇: 目前微服务业务架构是主流,Apache ShenYu(incubating)非常适合做微服务的业务网关,它本身提供了非常多的微服务组件,与主流的 RPC 框架结合的比较好,也有对流量完全掌控的可视化控制台,非常适合复杂的业务场景。 其次它非常适合做多语言多协议的转换。
肖宇: 社区应该遵循 Apache Way 的方式去运作,构建一个开放治理的社区环境,并提供轻量级,高性能,功能强大的 API 网关解决方案,去帮助更多的企业与用户。 同时也期待它能够顺利的从 Apache 孵化器毕业成为 Apache 顶级项目。
肖宇: 我刚开始接触开源,是因为同事有一个开源项目(微信工具类,200 多星),它帮助了另一个开发者,并收到了一袋辣条的感谢。我当时就觉得这是一件非常酷,非常好玩的事情。后面我开源了 Hmily,Riancat 等分布式事务框架,就是想帮助更多的人,当他们系统遇到像我遇到的问题的时候,可以快速的解决。
现在,我慢慢体会到, 开源项目,你应当把它当成一个礼物 ,是免费赠送给所有人的。那是什么样的人,能够去送礼物呢? 首先你是一个有礼物的人(状态不会太差的人),其次是你自愿赠送给别人的。期待看到国内更多有礼物的,自愿赠送礼物的人出现。
肖宇: 我理解的社区,是一个平等,和谐环境。在这里有一群热心的人,为了同一个目标,朝着同一个方向去前进。 每一个人都有自己的优点和缺点,就算是源代码的作者,也会犯很多错误,写很多 Bug。但是这些都没关系,只需要放平自己的心态,虚心接受不同人的不同意见,可以有争论,但是最终要达成一致。社区的力量是无比强大的,只要有人,问题就会被解决。
肖宇: 首先 Dromara 是爱尔兰一个风景优美的小乡村的名称,其次我比较喜欢草原,而草原上的姑娘叫卓玛拉,一结合名字就诞生了。
Dromara 开源社区的 Gitee 主页
目前 Dromara 社区有 9 个 GVP 项目,和一些 Star 数量很高的项目。我们是一群爱好开源,乐于帮助别人的群体,每一个项目,都由项目的作者/Committers 去运营自己的社区,我只是竖起来一个良好开源氛围的旗帜,也希望其他的开源作者和爱好者,能够加入到这个大家庭。谈不上有什么构想,只是希望组织能够提供非常多、非常好的解决方案,去帮助到更多的人。
肖宇: 本职工作做好是前提,毕竟还是得吃饭。工作效率一定要高,这样在工作之余,就可以投入时间去开发维护开源项目。
肖宇: 我不能说推荐哪一本,按照我个人经验,你应该学习对你目前的技术有帮助的书籍,要博学善思,学以致用。你在书上学到的,最好能够用在你的工作上,这是最完美的。千万不要买那种书里面全是贴代码的, 看书是让你学习原理,而不是复制里面的代码 。
肖宇: 我的爱好广,会玩各种棋牌,球类。最爱的还是电竞,也是前英雄联盟王者段位选手。现在和开源社区的朋友打打王者荣耀。我本身喜欢小动物,尤其是萌的很可爱猫咪,有一次进群,实在不知道叫什么名字,就把群名改成了猫大人,然后大家一直都是这么称呼。目前我在家也养了 2 只小猫咪,当你晚上在家写代码的时候,猫咪会一直陪着你,那种感觉很好。
肖宇的猫咪之一——布丁
肖宇: 我相信大部分人的起点比我高。当在低谷的时候,要不断的学习,去积累自己的知识,现在的环境真的很开放,一定要多去参与一些好的开源项目,你在开源项目里面可以学到非常好的设计模式,良好的代码风格,接触到现公司永远不可能使用的技术栈,认识一大帮朋友,都是对自身巨大的提升。