来源|阿里巴巴云原生公众号git
Sentinel 是阿里巴巴开源的,面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统自适应保护等多个维度来帮助开发者保障微服务的稳定性。Sentinel 承接了阿里巴巴近 10 年的 双11 大促流量的核心场景,例如秒杀、冷启动、消息削峰填谷、集群流量控制、实时熔断下游不可用服务等,是保障微服务高可用的利器,原生支持 Java/Go/C++ 等多种语言,而且提供 Istio/Envoy 全局流控支持来为 Service Mesh 提供高可用防御的能力。github
2020 年年初,Sentinel 社区宣布了 Sentinel Go 版本的发布,为 Go 语言的微服务和基础组件提供高可用防御和容错能力的原生支持,标志着 Sentinel 朝着多元化与云原生迈出了新的一步。在这半年的时间内,社区推出了近 10 个版本,逐步对齐了核心高可用防御和容错能力,同时也在不断扩充开源生态,与 dubbo-go、蚂蚁 MOSN 等开源社区进行共建。golang
11 月,Sentinel Go 1.0 GA 版本正式发布,标志着 Go 版本正式进入生产可用阶段。详情请看:《阿里 双11 同款流控降级组件 Sentinel Go 正式 GA,助力云原生服务稳稳稳》。架构
可喜的是,社区在 11 月迎来了三位新 committer。接下来,咱们一块儿来认识下这三位新 committer。分布式
以前在阿里实习过,对 Sentinel 本来有过一些接触。工做中有一些流控需求,就深刻调研过 Sentinel,慢慢的开始和Sentinel开源负责人宿何一块儿共创 Sentinel Go 这个项目。ide
工做项目中须要实现熔断限流相关的功能,就调研了许多相关的开源项目,最终发现基于 sentinel-golang 开发是最合适的。为了对 sentinel-golang 有更深的理解和更好的把控,就开始深度阅读 sentinel-golang 源码,并加入 sentinel 社区与小伙伴们进行深度交流。微服务
在参与 nacos-sdk-go 项目开发时,了解到 sentienl-golang。另外有计划使用 Nacos 做为外部动态数据源,就参与进来贡献了。学习
Sentinel 开源社区是一个很是开放,包容,活跃的社区。在这里能够认识不少的牛人,学习分布式系统高可用流量防御的大量实践经验。在这里任何想法和优秀的设计,均可以和社区核心成员一块儿讨论而且落地。优化
很是幸运能参与到 Sentinel 的开源贡献,在参与的过程当中,收获不少。首先认识了不少牛人,得到了不少可贵的交流机会;其次,在贡献代码的过程当中,进一步加深了对 Sentinel 项目设计与实现的理解;还有就是利用业余时间参与贡献,让本身的业余时间更加充实。设计
首先以为氛围很好,社区大佬 @宿何 和 @louyuting 等等都很热情会很是及时的解答每个问题。其次以为社区很是专业,能够和不少小伙伴进行深度交流,参与贡献的过程当中会学习到不少知识,对 Sentinel 的设计理念有了更深层次的理解。
Sentinel Go 这个项目我算是第一行代码的 Contributor,一路走过来慢慢跟随着项目的成长。整个过程可以看到项目不断的完善成长,也支持了社区里面一些公司的实际需求。对我而言,一方面是我的的成长,本身主导的 Sentinel Go 里面的一些核心设计可以落地,看到本身作的产品可以真正影响到一些人一些公司,产生实际的价值。另外与一些其他社区好比 dubbogo、mosn 社区,以及社区里面的一些公司合做,可以看到 Sentinel Go 能真正帮助他们解决微服务在高可用流量防御方面的一些痛点,很是有成就感。
最大的动力就是但愿实现我的与 sentinel 的共同成长。每次本身的代码被合并,对本身是个很大的鼓舞,促使本身继续努力、继续提高自我。也但愿经过我的微薄的贡献,能使 sentinel 发展地愈来愈好,能帮助到愈来愈多的人或项目。最让我有成就感的是本身主动挖掘到了项目中可改进和可优化的点,而且最终完成相应的代码贡献。我认为可以给在一个优秀的开源项目中发现问题并解决问题,是对我的能力一个很好的证实,因此会让我颇有成就感。
最大的动力应该就是对于开源社区的热情吧,以及但愿在贡献的过程当中与 sentinel 一块儿成长。在 sentinel 这样的优秀产品中留下本身贡献代码的足迹是很是有意义的事情。从加入社区开始到 sentinel-golang 的 v1.0.0 发布,在这个过程当中学习到不少,不断的挑战本身,看着 sentinel-golang 成长颇有成就感。
项目前期对一些高可用流量防御的实际场景理解的不够充分,一些核心设计上考虑的可能不够全面。不过整个社区都比较活跃,和一些社区核心成员沟通交流逐渐加深了对一些业务场景理解。
前期因为对整个项目熟悉度还不够,贡献代码时,可能仅考虑到一个表面的点,更深层次的东西可能考虑不到。不过,使人欣慰的是社区氛围比较好,在社区成员的帮助下,本身也逐步的对整个项目熟悉起来了。
最大的挑战也许就是第一次给 sentinel 提交 PR 的时候了。由于刚开始不太熟悉项目 PR 改了不少次。最后多亏 @louyuting 大神耐心指教。
主要会参与一些 Sentinel Go 与 Dubbo Go 融合的相关事情。
目前尚未参与其余的项目,后续有机会的话想参一下 Dubbo Go 项目。
目前也有参与 Nacos 项目。
欢迎各位开发者前往 sentinel go 社区和 committer 们直接交流:https://github.com/alibaba/sentinel-golang
若是你也想成为 sentinel contributor,不妨从 good first issues 开始:https://github.com/alibaba/sentinel-golang/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22