如何给开源项目发起提案

文章讲述了作者在使用PulsaradminAPI时遇到响应慢的问题,由于大量生产者和消费者导致数据量大。作者提议新增参数过滤字段,遵循社区提案流程,通过邮件讨论和投票最终简化实现,强调了社区合作在优化技术方案中的高效性。
摘要由CSDN通过智能技术生成

背景

前段时间在使用 Pulsar 的 admin API 时,发现其中的一个接口响应非常慢:

admin.topics().getPartitionedStats(topic);

使用 curl 拿到的响应结果非常大,同时也非常耗时:4019e9f4bd8b58ea13525cad655dde2c.png

具体的 issue 在这里:https://github.com/apache/pulsar/issues/21200

后面经过分析,是因为某些 topic 的生产者和消费者非常多,导致这个查询 topic 统计的接口数据量非常大。9832a2b7f87324d5b0d59f880672aa7a.png

但在我这个场景其实是不需要这些生产者和消费者信息的,现在就导致这个 topic 无法查看状态,所以就建议新增两个参数可以过滤这两个字段。

流程

因为涉及到新增 API 了,所以社区维护者就建议我起草一个提案试试:5c79410c30499f767e007961a8481656.png

什么时候需要提案

此时就涉及到什么情况下需要给社区发起一个提案的问题了。df0a53cc8149b5aa6f1f1b043fb241e6.png在官方的提案指南中有着详细的说明,简单来说就是:

  • 对任何模块新增了 API、或者是重大改动的新特性、监控指标、配置参数时都需要发起提案

  • 对应的如果只是对现有 bug 的修复、文档等一些可控的变更时,是不需要发起提案的,直接提交 PR 即可。

提案步骤

起草

首先第一步就是根据官方模版起草一个提案:重点描述背景、目的、详细设计等。44b4e1f7e0abb91eff419a8030b381ea.png并发起一个 PR,如果不确定怎么写的话可以参考已经合并了的提案。

邮件讨论

之后则是将这个 PR 发送到开发组邮箱中,让社区成员参与讨论。

8a050474322375d05ad2492d54350df4.png这一步可能会比较耗时,提案内容可能会被反复修改。

发起提案的一个重要目的是可以让社区成员进行讨论,评估是否需要这个提案或者是否 有其他解决方法。

发起投票

经过讨论,如果提案获得通过后就可以发起投票了,至少需要有三个 binding 通过的投票后这个提案就通过了。

虽然任何人都可以参与投票,但社区只会考虑 PMC 的投票建议;投票的时效性也只有 48h。

577f0ec037bda5449a56429b35e74e14.png
image.png

48 小时候便可以发一个投票结果的邮件,如果达到通过条件便可以通知参与投票的 PMC 合并这个 PR 了。305d13a31382fb5afe38eb3c4cc4bf67.png

实现提案

之后就是没啥好说的实现过程,因为通常我们是需要在提案里详细描述实现过程以及涉及到修改的地方。

总结

只要提案被 review 通过后实现起来就非常简单了,跟着提案里的流程实现就好了。

这点非常类似于我们在企业中对某个业务做技术方案,如果大家都按照类似的流程严格审核方案,那实现起来是非常快的,而且可以尽量的减少事后扯皮。

所以最后我的实现 PR 提交之后,都没有任何的修改意见,直接就合并了;也大大降低了审核人员的负担,提高整体效率。

以上就是我第一次参与 Pulsar 社区的提案过程,我猜测其他社区的流程也是大差不差;其中重点就是异步沟通;大家都认可之后真的会比实时通信的效率高很多。

具体的提案细节可以阅读官方指南 https://github.com/apache/pulsar/blob/master/pip/README.md

最近掘金在做年度人气作者投票,动动你们的小手为博主投上一票吧。

362b3077f7e26a063ecf69bf2473a214.jpeg

往期推荐

技术阅读周刊第十期

如何编写一个 Pulsar Broker Interceptor 插件

五分钟 k8s 实战-滚动更新与优雅停机

五分钟 k8s 实战-应用探针

升级到 Pulsar3.0 后深入了解 JWT 鉴权

c380aee178f1a132a9da49df863e8f1f.gif

点分享

d29bab4c81766ba31668a85ad417e888.gif

点收藏

9dda1efa8f120edcd88c0b9684d580b5.gif

点点赞

a9ae28492fb8f4e00ac1746311cb199b.gif

点在看

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本微信小程序医院挂号预约系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此微信小程序医院挂号预约系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。微信小程序医院挂号预约系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,医生信息管理,医院信息管理,科室信息管理,预约信息管理,预约取消管理,留言板,系统管理。微信小程序用户可以注册登录,查看医院信息,查看医生信息,查看公告资讯,在科室信息里面进行预约,也可以取消预约。微信小程序医院挂号预约系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值