跳过导航

贡献者聚会

您知道此页面是根据 Github Wiki 页面 自动生成的。您可以在 此处 自行改进它!

一些聚会专注于 netty 本身的开发,因此只有贡献者才能受邀参加这些聚会。但是,我们会在聚会结束后分享所有聚会详情,以造福所有参与 netty 的人。

2021 年 10 月 28 日

议程

  • 缓冲区更新
  • Netty Core/Contrib 存储库分离
  • HTTP 缓存

幻灯片

https://github.com/netty/netty-website/blob/153b76239eb41ee287fac062cbb5d9537441def2/meetups/contributor_meetups/2021-10-28/slides.pdf

录制

笔记/行动项目

缓冲区更新

Chris 提供了一些与缓冲区 API 相关的更新。

常规

  • 我们解决了所有反馈
  • 简化了生命周期
  • 开始将模块转换为新的缓冲区 API

生命周期

  • 不再可见引用计数
  • 现在缓冲区始终归所有,因此不再有切片/复制方法
  • 您必须使用新的 API,如拆分/复制/发送作为替代

集成

  • 现在可以通过配置设置“新分配器”,因此集成更加紧密。
  • 提供默认实现
  • 编写了新的泄漏检测器实现,用于新的缓冲区 API 和实现。

问题:弗拉基米尔:分配器实现是否仍然相同?配置等如何?克里斯:算法方面相同,但我们希望重新审视分配器的默认值/配置。

弗拉基米尔:最好发布有关调整等的文档……诺曼:是的,我们应该这样做!添加一个操作项。

朱利安:我想知道哪些编解码器仍在使用新 API 克里斯/尼特什:目前使用此 API 的编解码器并不多。我们目前正在移植 HTTP/1。请检查并提供反馈:https://github.com/netty/netty/pull/11711

朱利安:是否可以混合匹配新 API 和旧 API 克里斯:是的,您可以这样做。有转换方法。

诺曼:当我们发布 Beta1 时,我们的目标是将所有内容都移到新 API。

存储库拆分

克里斯:我们希望将使用较少/专业知识较少的项目移至 contrib。

西蒙:您如何为 contrib “引入”新的维护者等?诺曼:还没有想法……让我们添加一个操作项

操作项

  • 添加与配置/调整缓冲区分配器相关的文档
  • 考虑如何将新的维护者/贡献者引入 contrib 模块
  • 我们是否应该为 contrib 模块建立一个单独的组织?Finagle 正在这样做

2021 年 9 月 28 日

此次聚会重点讨论了 HTTP/2 API 更改 (https://github.com/netty/netty/pull/11603).

幻灯片

https://github.com/netty/netty-website/blob/db820b93fff5711e0d1e698f3199164c7fa54918/meetups/contributor_meetups/2021-09-28/slides.pdf

录制

https://github.com/netty/netty-website/blob/db820b93fff5711e0d1e698f3199164c7fa54918/meetups/contributor_meetups/2021-09-28/recording.mp4

操作项

  • * H2 编码器和子通道上的流量控制器 → 我们应该先移至父通道吗?避免潜在的重新排序,并完全了解连接级别状态?
    • 利益相关者:eric、<nitesh、norman、chris、scott>
  • H2 协议升级 → 我们是否应支持 h2c,WebSocket 怎么办?
    • 这是一个开放的讨论事项,目前倾向于不支持纯文本 (h2c) 升级。每个流的 WebSocket 升级应该是可行的,但尚未验证。
    • 利益相关者:Moses、Julien、Susheel、<nitesh、norman、chris、scott>
  • 社区聚会 → 设置 wiki 以获取聚会内容,创建人们可以请求下次聚会主题的地方。
    • 利益相关者:norman
  • 早期采用者 → 我们需要人们审查 PR 并为 Netty 5.0 功能(缓冲区、h2 api、压缩等)提供支持。
    • 利益相关者:<社区中的每个人 🎉❤️>

注释

  • 社区:每两个月举行一次会议,分享议程,为无法参加的人员做笔记
  • 社区:Netty 5 必须能够在同一应用程序中与 Netty 4 共存(不同的包名称、maven 坐标、不同的 JNI 库名称和方法签名)
  • 社区:(Moses、Eric、Violeta Georgieva) 有兴趣减少子通道初始化的开销
  • Eric:在控制帧与子通道的关系方面,很难理解 h2 PR。不清楚预期的改进与一般更改之间的区别。
  • Moses:h2c 升级如何工作?
  • Julien:h2 的 WebSocket。如何支持此功能?
  • Susheel:WebSocket 需要 h2c 升级吗?我们是否能够使用 WebSocket 处理程序进行升级?
  • Eric:我们能否使 H2 帧类型“就地”(无论如何,缓冲区更改将在 Netty 中普遍存在)
  • Carl:可写性如何工作?
    • Scott:如果我们对可写性使用流控制,则连接窗口更新必须连接到子通道
    • Eric:流控制和可写性之间可能没有紧密耦合。权衡包括额外的内存,但有助于简化实现/连接并避免分配抖动和公平性问题。
  • Eric:编码器和流控制为何在子通道上?
    • Eric:更不透明是因为你只能看到字节(受限,看不到其他帧)。跨通道共享 hpack 编码器似乎有风险,因为事件可能会重新排序。
  • 社区:没有人表示有兴趣实现自定义流控制算法,不反对一开始将此包保留为私有。
  • Eric:原型中有一些组件是我们之前放弃的,我们如何认为可以重新获得性能优势?
  • Eric:我们应该考虑 API 迁移垫片来帮助迁移。例如,需要一个从 ByteBuf 到 Buffer 的垫片,应该考虑是否可以用 h2 等来做同样的事情。
上次检索于 2024 年 7 月 19 日