diff --git a/assets/scss/community.scss b/assets/scss/community.scss deleted file mode 100644 index 1dbdf0c3219..00000000000 --- a/assets/scss/community.scss +++ /dev/null @@ -1,353 +0,0 @@ -#banner { - aspect-ratio: 1500 / 293; - display: block; - width: 100%; - margin: 0 0 2.5em 0; - object-fit: cover; - overflow: clip; -} - -.intro { - p { - font-size: 17px; - } -} -#gallery { - display: flex; - max-width: 100%; - gap: 0.75rem; - justify-content: center; - margin-left: auto; - margin-right: auto; - - img { - display: block; - flex-basis: 0; - flex-grow: 0; - height: 24vh; - width: 90%; - } - - img.community-gallery-mobile { - display: none; - } -} - -.full-button { - display: inline-block; - margin: 2rem auto auto; - background-color: rgb(37, 170, 187); - color: white; - font-size: 18px; - padding: 2% 2.5%; - letter-spacing: 0.07em; - font-weight: bold; -} - -.community-title { - width: 100%; - text-align: center; - margin-bottom: 2rem; - font-size: 42px; -} - -.community-content { - width: 100%; - text-align: center; - margin-bottom: 2rem; - font-size: 20px; -} - -.community__navbar { - text-align: center; - padding-top: 2%; - padding-bottom: 2%; - text-decoration: none; - text-transform: uppercase; - font-weight: 400; - color: #303030; - font-size: 14px; - margin-top: 1%; - margin-bottom: 4%; - width: 100%; - float: left; - letter-spacing: 0.07em; - border-bottom: 1px solid #aaaaaa; - border-top: 1px solid #aaaaaa; -} - -.list-center { - width: 100%; - text-align: center; - margin-bottom: 2rem; - - div { - margin-top: 2%; - - a { - text-align: center; - padding-top: 2%; - padding-bottom: 2%; - text-decoration: none; - font-weight: 400; - font-size: 28px; - } - } -} - -.develop-contribute { - width: 100%; - text-align: center; - margin-bottom: 2rem; - font-size: 20px; -} - -.resources { - width: 100%; - margin-top: 5%; - margin-bottom: 3%; - float: left; -} - -.resource-container { - width: 100%; - margin-top: 3%; - margin-left: 10%; -} - -.resource-box { - float: left; - margin: 1%; - border: 1px solid grey; - padding: 2%; - font-size: 1em; - color: #0662EE; - height: 120px; - vertical-align: middle; - text-transform: uppercase; - font-weight: bold; - line-height: 1.3em; - letter-spacing: 0.05em; - width: 20%; - min-height: 330px; - text-align: center; -} - -.resource-box-text { - width: 90% !important; - margin-left: 5% !important; - font-weight: 400 !important; - margin-top: 5% !important; - padding: 3%; - font-size: 0.7em !important; -} - - -.community-section { - margin-top: 1em; - margin-bottom: 1em; - padding: 0.5em 0; - justify-content: space-evenly; - align-items: baseline; - align-content: space-between; - min-height: 10em; - text-align: center; - - h2 { - font-weight: 200; - text-align: center; - margin-bottom: 2rem; - font-size: 39px; - margin-top: 2%; - } - - > p:not(.community-simple) { - line-height: 1.5em; - text-align: center; - font-size: 20px; - } - - .container { - width: 100%; - display: flex; - gap: 2em; - justify-content: center; - margin-left: auto; - margin-right: auto; - } - - #navigation-items { - max-width: 85em; - margin-left: auto; - margin-right: auto; - } -} - -#navigation-items { - width: 100vw; - max-width: 100%; - - margin-top: 2.5em; - margin-bottom: 2.5em; - - gap: 1.25em; - - border-bottom: 1px solid #aaaaaa; - border-top: 1px solid #aaaaaa; - display: flex; - flex-direction: row; - flex-wrap: wrap; - padding: 0.25em calc((100vw - min(85vw, 120em)) / 2); - - .community-nav-item { - flex-grow: 1; - text-align: center; - letter-spacing: 0.08em; - padding-top: 0.2em; - padding-bottom: 0.2em; - word-spacing: initial; - text-decoration: none; - text-transform: uppercase; - font-weight: 400; - color: #303030; - background: #ffffff; - font-size: 1.2em; - padding: 0.2em; - margin: 0; - max-width: 75vw; - min-width: 10%; - min-height: 2em; - } -} - -#resources { - margin-top: 5%; - margin-bottom: 3%; - - .container { - width: 100%; - display: flex; - gap: 2em; - justify-content: center; - margin-left: auto; - margin-right: auto; - - .community-resource { - flex-basis: auto; - width: 100%; - flex-shrink: 1; - - a { - img { - max-height: 96px; - max-width: 96px; - display: block; - margin: 1em auto 0.75em auto; - } - } - } - } -} - -#twitter > a:nth-child(1) > img { - width: 96px; - height: 96px; - display: block; - margin: 1em auto 0.75em auto; -} - -#github > a:nth-child(1) > img { - width: 96px; - height: 96px; - display: block; - margin: 1em auto 0.75em auto; -} - - - -a.community-cta-button { - display: inline-block; - margin: 0.75em auto 0 auto; /* gap before button */ - - background-color: #36c4d7; - color: white; - - border-radius: 6px; - padding: 0.75em; - min-height: 3em; - min-width: max(5em, 9em); - - text-align: center; -} - -a.community-cta-button > span.community-cta { - color: inherit; - background: transparent; - - letter-spacing: 0.02em; - font-weight: bold; - text-transform: uppercase; -} - -.events { - background-image: url('/img/community/event-bg.jpg'); - float: left; - width: 100%; - font-size: 14px; - //margin-bottom: 3%; -} - -.event-container { - width: 100%; - margin-top: 5%; - margin-bottom: 3%; - margin-left: 0; -} - -@media only screen and (max-width: 1360px){ - #gallery img.community-gallery-desktop { - display: none; - } - - #gallery img.community-gallery-mobile { - display: initial; - max-width: 95vw; - height: auto; - } -} - -@media only screen and (max-width: 640px) { - .newcommunitywrapper > div:nth-child(7) > div > div > a { - font-size: 20px; - } - - #navigation-items { - justify-content: flex-start; - text-align: left; - gap: 0.125em; - - div.community-nav-item { - width: 100%; - text-align: left; - min-height: initial; - flex-shrink: 0; - } - } - - #resources .container { - flex-wrap: wrap; - .community-resource { - max-width: 80vw; - } - } -} - -#activity { - p { - span { - font-size: 16px; - font-weight: 1000 - } - } -} - diff --git a/assets/scss/main.scss b/assets/scss/main.scss index 133ba5d754b..0fa09d26c04 100644 --- a/assets/scss/main.scss +++ b/assets/scss/main.scss @@ -30,7 +30,6 @@ @import "home"; @import "about"; -@import "community"; @import "markdown"; @import "safety"; @import "copy-to-llm"; diff --git a/content/en/community/_index.md b/content/en/community/_index.md deleted file mode 100644 index 42ce3a3a380..00000000000 --- a/content/en/community/_index.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: Community -menu: - main: - weight: 30 ---- - -{{% blocks/lead color="primary" %}} - -
-
Welcome to the CloudWeGo Community
-

CloudWeGo is an open source project that anyone in the community can - use, improve, and enjoy. We'd love for you to join us! Here's how to get involved.

-
- -{{% /blocks/lead %}} - -## Develop and Contribute - -First off, thank you for your interest in CloudWeGo. We are a very open and active community, where dedicated contributors of all levels are welcome to join to share their passion for open source, learn and upskill themselves. -You may participate in the community through GitHub, or simply by interacting with other members in CloudWeGo Discord server: - - - -If you want to become a Contributor, please read the Contribution Guidelines and the Community Membership Privileges and Guidelines. - -## Where to Start? - -If you're looking for a place to start for your first contribution, here's a few things to note. The CloudWeGo project is subdivided into subprojects: - -- Kitex (Kitex & Kitex ecosystem & kitex-contrib) -- Hertz (Hertz & Hertz ecosystem & hertz-contrib) -- Volo (Volo & Volo ecosystem & volo-rs & Motore & Pilota) -- Netpoll (Netpoll & Netpoll ecosystem) -- Serdes (Thriftgo & Frugal & Fastpb & Sonic ecosystem & thrift-gen-validator) -- Shmipc (shmipc-spec & shmipc-go) -- Website & Docs (cloudwego.github.io) - -The community is structured with various roles to streamline day-to-day operations, and to recognize the efforts of longstanding contributors. Responsibilities for the various community roles fall under these subprojects (repos) as defined by the CloudWeGo team. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RoleResponsibilitiesRequirementsDefined by
MemberActive contributor in the community.Sponsorship by two approvers or maintainers, and multiple code contributions to the project.GitHub org member.
CommitterActive code contributions and/or issue replies in the subproject.Sponsorship by two approvers or maintainers and multiple code contributions to the project.GitHub subproject committer team.
ReviewerReview contributions from other members, and give feedback and guidance.Continuous history of review and authorship in a subproject.GitHub subproject reviewer team.
ApproverApprove contributions received by the project.Highly experienced, active reviewer and contributor to a subproject.GitHub subproject approver team.
MaintainerSet the direction and priorities for a subproject.Demonstrated sense of responsibility and excellent technical judgement for the subproject.GitHub subproject maintainer team.
diff --git a/content/zh/community/_index.md b/content/zh/community/_index.md deleted file mode 100644 index 56e53f4e402..00000000000 --- a/content/zh/community/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "社区" -linkTitle: "社区" -menu: - main: - weight: 30 ---- - -社区模块,当前包含以下几部分: diff --git a/content/zh/community/meeting_notes/2022-02-25/_index.md b/content/zh/community/meeting_notes/2022-02-25/_index.md deleted file mode 100644 index e275dfc5c0b..00000000000 --- a/content/zh/community/meeting_notes/2022-02-25/_index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: CloudWeGo 社区会议 2.25 -linkTitle: CloudWeGo 社区会议 2.25 -date: 2022-02-25 -weight: 1 -description: > ---- - -**会议主题:** CloudWeGo 社区会议 2.25 - -**参会人员:** Joway, YangruiEmma, liu-song, AshleeT, li-jin-gou, Hchenn, PureWhiteWu, GuangmingLuo, baiyutang, yccpt, horizonzy. - -**会前必读:** [官网](/); -https://github.com/cloudwego - -## 议程 1 :自我介绍+历史贡献介绍 - -内容:参会人员轮流开展了自我介绍,包含个人基本情况、历史贡献、个人未来规划、相关建议。 - -## 议程 2 :社区规划介绍和后续安排 - -社区介绍(@罗广明 负责介绍): - -1. 对CloudWeGo官网进行了简要介绍,并欢迎社区成员对官网内容进行提问,发表看法。 -2. 向参会人员介绍 kitex-contrib 库。 -3. 提出与其它开源项目合作,吸引更多用户。 -4. 介绍 kitex 框架的扩展性,可支持很多能力的扩展,提出未来框架能和更多开源项目做一些对接。 - -Action Items - -- 在官网 Community 部分,后期计划征得大家同意之后,公开各位Contributor 的信息,比如 GitHub 的一些 ID 头像。 -- 在渠道推广方面,后期会考虑与社区其他开源项目合作与对接,包括框架接入、宣传推广等方面。 -- 在 Kitex 框架对接方面,安排 Kitex 框架后期与更多的开源项目(有一定的用户量和知名度的开源项目)进行对接。 -- 在官网优化方面,后期进行网站文档的建设与优化。 -- 在宣传方面,欢迎源码分析方面的文章投稿,同时我们也会加大对 Kitex example 的对外分享与宣传。 -- 在用户案例收集方面,正在逐步沟通与接洽。 -- 确定双周例会时间:暂定双周五晚7:30 - -## 议程 3:社区建议 - -1. 收集外部用户案例:Kitex 除了字节之外也有其他的用户,建议可以收集外部用户案例。@刘嵩 -2. 共享代码变更设计文档:关于核心库的变更,内部同学改动的设计文档可以及时放在 Issue 或者群里面,便于感兴趣的同学可以参与进来。@赵延 -3. 共享源码分析:源码分析内容可以放到 Issue 中置顶,让大家快速了解整个框架,后期输出的源码分析文档也可以向外部同学同步出来@赵延 ;同时,源码分析文档的框架核心介绍,有助于外部同学对框架做一个深刻的认知,做出更多的 PR @clark(王伟超) 。 -4. 丰富宣传方式:建议换一些新颖的方式进行推广和宣传,例如B站和某些有影响力的技术圈之类的。@clark(王伟超) -5. 文章输出:建议@李龙 将之前写的Example 中的 Easy demo ,整理为一篇文章,对项目做一下介绍,之后会对它进行对外发布。 diff --git a/content/zh/community/meeting_notes/2022-03-11/_index.md b/content/zh/community/meeting_notes/2022-03-11/_index.md deleted file mode 100644 index f8e54e3d44e..00000000000 --- a/content/zh/community/meeting_notes/2022-03-11/_index.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: CloudWeGo 社区会议 3.11 -linkTitle: CloudWeGo 社区会议 3.11 -date: 2022-03-11 -weight: 2 -description: > ---- - -**会议主题:** CloudWeGo 社区会议 3.11 - -**参会人员:** CoderPoet, liu-song, GuangmingLuo, Zheming Li, YangruiEmma, li-jin-gou, simon0-o, Dianjun Suo, jasondeng1997, lvnszn, baiyutang, Duslia, joway, Xuewu Jiang, AshleeT, yccpt. - -**会前必读:** [官网](/); -https://github.com/cloudwego - -## 议程 1 :新人自我介绍 - -内容:社区新成员和首次参加社区会议的内部成员分别进行自我介绍,主要包含个人基本情况和历史贡献。 - -## 议程 2 :CloudWeGo 仓库介绍 - -1. 对 CloudWeGo 主仓库进行了简要介绍,欢迎社区成员对仓库进行补充加强。例如:欢迎大家在 Kitex_examples 仓库提交一些 Business demo,例如电商、医疗等不同行业场景下的典型案例 。 -2. Community 仓库:首先,Community 仓库刚成立不久,主要用于归档社区相关的材料,包括双周会的会议纪要(meeting_notes)和周报(weekly_report)。其次,也欢迎大家成为该仓库的正式成员,后续的活动可以第一时间通知到大家,便于大家参与到核心功能的讨论与开发。 -3. Kitex-contrib 仓库:该仓库包含了各种扩展的对接实现,比如对接 Prometheus,对接Opentracing 等。其中,OpenTelemetry 对接项目正处于提交 PR 的状态,欢迎大家参与到项目的共建和 review。 - -## 议程 3:社区后续工作介绍 - -1. 源码解析和微服务实践解析系列文章志愿者筹集,以及宣传运营支持:譬如:我们可以通过开源中国等渠道去发布一些优质文章,欢迎大家在源码解析和微服务实践方面文章的投稿。 -2. 开放服务治理:后续会和其他的一些厂商以及开源社区共同合作,去完成服务治理标准的制定。 -3. 官网文档和页面优化:对 CloudWeGo 官网的 Document、About、Blog 和 Community 页面提出意见,进行优化。 - -## 议程 4: Kitex 3、4月 TO DO/DOING - -**事项介绍** - -1. 性能优化 - -- Kitex-gRPC Streaming 性能提升。 -- Protobuf 编解码性能优化,初步完成,完善边界 case 。 -- Frugal - 无生成代码的高性能动态 Thrift编解码库。 - -2. 新特性支持 - -- Thrift 泛化调用 新增对 Protobuf 的支持用于网关 -- Protobuf <-> Thrift 高性能的协议转换 -- 重试:支持用户自定义异常重试 -- Proxyless 支持:完成服务发现/路由对 xds 接口扩展 - -3. 功能优化: - -- 重写连接池逻辑,支持更加优雅的空闲连接清理 -- 增加字段 Size 校验 - -4. 外部需求 - -- 连接预热、连接多路复用通知上游退出 - -**Action Items** - -1. Kitex 开源库单元测试补全任务:希望社区同学能够加入进行补全。有助于促进大家熟悉源代码,帮助大家的后续开发。重点需要补充的 package 后续会在 Kitex 仓库创建独立的 Issue, 欢迎大家认领。 - -**补充单元测试原则** - -1. 补充的单测必须是有意义的,验证某个逻辑的正确性,或者异常表现是否符合预期。 - -2. 杜绝为了覆盖率而补全单测,宁可不加。 - -3. 每个单测必须要有断言。 - -4. 可以添加 mock 辅助单测。 - -5. 建议单测通过注释明确验证的逻辑。 - -6. 不要在单测代码里用 printf 等手段打日志人肉去检验。 - -## 议程 5:Q&A - -**Q:Kitex 啥时候支持 Thrift Streaming?** - -A:Kitex 支持 Thrift streaming 我们刚开始是计划要做的,但是之后了解到目前没有应用场景,没有用户提出需要用到 Thrift Streaming, 因此,这个计划我们就搁置了。如果没有收到真实的业务场景需求,我们暂时不去安排这个功能支持。 - -**Q:Proxyless 支持这块是一个 doing 状态吗?** - -A:之前是有一个同学在跟进,但是后来因为内部有其它事情处理就没有再继续做了。如果你感兴趣的话,可以加入进来一起支持。 - -**Q:字段 size 是说大包性能的问题么。类似拆包去分发?** - -A:首先,大包这一块的问题,我们目前是在 v1.8.0版本,就支持了可以去自定义整个包的 size。 其次,字段 size 校验的话,有可能有时我们的包出现错误,这个时候如果我们没有去校验 size, 那在解码的过程中,会因为这个错误的 size 可能导致去分配很大的内存。所以我们想对这个字段 size 增加一个校验。 - -**Q:连接池优化是指高并发的时候,长连接变成短连接的问题吗?** - -A:不是的。我们的连接池有一个空闲连接的策略,空闲连接是指你配置了空闲时间,那么到了这个空闲时间,你这个连接就应该被清理掉。但实际上目前不是这样的逻辑,目前是我在用到这个连接的时候,我发现这个连接可能已经达到了我的空闲时间了,然后我才会把它给清理掉,这个是不合理的。基于此,我们打算重写这块的逻辑。 diff --git a/content/zh/community/meeting_notes/2022-03-25/_index.md b/content/zh/community/meeting_notes/2022-03-25/_index.md deleted file mode 100644 index 543b82ea907..00000000000 --- a/content/zh/community/meeting_notes/2022-03-25/_index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: CloudWeGo 社区会议 3.25 -linkTitle: CloudWeGo 社区会议 3.25 -date: 2022-03-25 -weight: 3 -description: > ---- - -**会议主题:** CloudWeGo 社区会议 3.25 - -**参会人员:** YangruiEmma, liu-song, baiyutang, yccpt, AshleeT, Authorixy, Dianjun Suo, bodhisatan, CoderPoet, Quan Hu, li-jin-gou, JZK-Keven, EastHorse, GuangmingLuo, Xiwen Li, joway, jasondeng1997, HeyJavaBean. - -**会前必读:** [官网](/); -https://github.com/cloudwego - -## 议程 1 :新成员自我介绍 - -内容:社区新成员和首次参加社区会议的内部成员分别进行自我介绍,主要包含个人基本情况、历史贡献和个人未来规划。 - -## 议程 2 :Kitex 单测任务进展介绍 - -1. **领取进度:** 10/14。 -2. **如何认领任务:** 在任务认领页面下方的评论中,留言你需要认领的项目,之后会分配给你。 -3. **提交 PR 注意事项 :** - - a. 提交 PR 一定要关联 Issue (可以在 PR 描述里面进行 Issue 关联)。 - - b. Kitex 单测任务的 PR 的描述前缀统一使用 Test,便于相关同学进行 review。 - - c. 提交了 PR之后,可以将 PR 发送在群里,方便后续跟进。 - -4. **提交 PR 时间要求:** 认领之后半个月内提交 PR,便于后续的意见修改和调试。 - -## 议程 3:源码分析落地 - -1. **参考案例:** 具体可以参考 Go-zero 和 Kratos 开源社区。例如:对框架一些较好的设计进行解读,提供“扩展阅读”文档,目录可以涵盖“日志组件介绍”、“令牌桶限流”等文档内容。 -2. **后续规划:** - - a. 草拟源码分析目录大纲:① 目录结构和内容可以参考 CloudWeGo 官网目录;② 源码分析目录文档完成后,可以发在群里或者在 Github 上提交 Issue ,方便大家讨论修改;③ 认领单测任务的同学可以关注一下源码分析活动,助于更好地了解模块的功能。 - - b. 宣传推广:后续会讨论宣传方案(例如征文比赛),也鼓励做出贡献的同学寻找渠道进行推广。 - -## 议程4:Q&A - -**Q:写 Retry 的单测时,Retry 的单测其实是要配合 Kitex 的 Client 一起使用的。但是如果要把单测写到 Retry 下面的话,就需要引一个 Client 才能去写,这样就导致 Client 单测下面可能也有 Retry ,会存在一个循环依赖的问题?** - -A:确实存在循坏依赖的情况。对于这种情况,可以使用 mock,比如你需要用到 Client,那你可能要专门去 mock 一个 Client;除此之外,单测使用 xxx_test package,也可以解决循环依赖的问题。 - -## 议程5:社区建议 - -欢迎大家将参与社区建设期间遇到的任何问题和想法发在群里,同社区成员一起沟通。内容不限于 Kitex、Netpoll 代码库、CloudWeGo 官网、宣传渠道等。 diff --git a/content/zh/community/meeting_notes/2022-04-08/_index.md b/content/zh/community/meeting_notes/2022-04-08/_index.md deleted file mode 100644 index f79de538ebd..00000000000 --- a/content/zh/community/meeting_notes/2022-04-08/_index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: CloudWeGo 社区会议 4.8 -linkTitle: CloudWeGo 社区会议 4.8 -date: 2022-04-08 -weight: 4 -description: > ---- - -**会议主题:** CloudWeGo 社区会议 4.8 - -**参会人员:** YangruiEmma, liu-song, yccpt, AshleeT, GuangmingLuo, CoderPoet, HeyJavaBean, jayantxie, JZK-Keven, Xiwen Li, joway, bodhisatan - -**会前必读:** [官网](/); -https://github.com/cloudwego - -## 议程 1 :新成员自我介绍 - -内容:一位社区新成员进行简要的自我介绍,主要包含个人基本情况、个人未来规划。 - -## 议程 2 :Kitex 单测任务进展介绍 - -- 没有提交 PR 的同学可以尽早提交 PR,便于后续相关同学进行 review。 -- 后期会为大家邮寄礼品。 - -## 议程 3 :Kitex 4月发版计划 - -- 发版时间:**4 月 28 日**,发布中版本。 -- **4 月 20 日前**,各变更需完成独立的功能验证和性能测试;如无特殊情况, **4 月 22 日前**,完成所有变更合并,然后进入整体的功能验证和性能测试阶段。 - -## 议程 4 :Q&A - -**Q:社区后续工作规划有哪些?** - -A:可以参考前期的会议纪要:https://github.com/cloudwego/community/tree/main/meeting_notes , -以及 Kitex 的 RoadMap: https://github.com/cloudwego/kitex/blob/develop/ROADMAP.md 。 -其它的规划还包括:1. 推进 xDS 的对接实现; 2. Kitex 对接支持业界开源服务治理能力和云平台。 diff --git a/content/zh/community/meeting_notes/2022-04-21/_index.md b/content/zh/community/meeting_notes/2022-04-21/_index.md deleted file mode 100644 index 71509fe0bb2..00000000000 --- a/content/zh/community/meeting_notes/2022-04-21/_index.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: CloudWeGo 社区会议 4.21 -linkTitle: CloudWeGo 社区会议 4.21 -date: 2022-04-21 -weight: 5 -description: > ---- - -**会议主题:** CloudWeGo 社区会议 4.21 - -**参会人员:** YangruiEmma, liu-song, baiyutang, yccpt, AshleeT, CoderPoet, Quan Hu, li-jin-gou, JZK-Keven, EastHorse, GuangmingLuo, HeyJavaBean, jayantxie, ppzqh, Shizheng Hou, andrewshan, simon0-o, yiyun, Wanqi Su, Zheming Li, Xianjie Yao, LoveScotty. - -**会前必读:** [官网](/); -https://github.com/cloudwego - -## 议程 1 :新成员自我介绍 - -内容:社区新成员分别进行自我介绍,主要包含个人基本情况、开源贡献经历和后续参与社区规划。 - -## 议程 2 :Kitex 单测任务回顾、总结、建议 - -(@GuangmingLuo 负责介绍) - -1. **完成进度:** 2/14 -2. **提交 PR 注意事项 :** - - a. 写 PR 描述:直接写 Issue 的编号即可,**不要写 Fix 和 Resolve**。 - - b. 提交 PR 前:完成本地 Coding 后,**运行**`gofumpt -l -extra -w .`,检测代码是否存在语法、 License等问题。Contributor 在本地 Fix 这些问题后,能够顺利通过 CI 流程检测,顺利进入 review 环节。 - - c. 提交 PR 时:若 PR 处于 Working In Progress 状态,大家在提交 PR 时可以选择 **Draft PR **,或者在 PR 描述中**加入 \*\***WIP\***\* 标识**,便于 Reviewer 优先处理完成状态的 PR。 - - d. 单测描述:需要在描述部分清晰、详细说明单测方法的**场景**,便于后续快速、准确地 Review 代码逻辑。 - -3. **后续安排:** 将完成的 PR 正式地 Release 在 Kitex V0.3.0 中,并在 **Release Notes** 中公示。 - -## 议程 3:Kitex 源码解析活动介绍与讨论 - -(@baiyutang 负责介绍) - -1. **介绍:** 源码解析活动方案草案主要包含六大模块:学习资料、设计理念、目标、课题、解读思路、产出形式。 - - a. “目标”:① 作为 Contributor 的学习产出;② 作为框架新人的学习资料;③ 丰富社区资源和内容,提高 Kitex 的知名度。 - - b. “课题”:包括 Kitex 模块设计及调用链路、服务治理、框架公共模块等内容。 - - c. “解读思路”:包括代码设计现状、设计背景、Q&A、最佳实践等内容。 - -2. **后续安排:** 确定源码解读的优先级,继续补充、优化文档内容。 - -## 议程 4:Kitex 与阿里云 Nacos + Trace 对接工作进展介绍与讨论 - -(@li-jin-gou 负责介绍) - -1. **背景介绍:** 我们希望将 [Demo(Easy-Note) ](https://github.com/cloudwego/kitex-examples/pull/27)部署到阿里云,主要的工作是验证 Kitex 接入阿里云的 ARMS 的链路追踪 和 MSE 的 Nacos 注册中心。 - -2. **工作开展:** 目前主要进行了 Kitex Nacos 扩展改造,包括改造初始化方式、设置环境变量和默认值、自定义 Logger 注入等。 - -3. **后续安排:** 相关实践文档在完成正式验证和完善后,将通过官方渠道,对外发布。 - -## 议程 5:Kitex 对接开源服务治理 SDK 方案介绍与讨论 - -(@jayantxie 负责介绍) - -1. **背景介绍:** 为方便 Kitex 用户上云,计划对接腾讯的开源服务治理平台 Polaris,通过集成 [go sdk](https://github.com/polarismesh/polaris-go/tree/main/examples/quickstart),满足诸如熔断限流和动态路由等 Polaris 平台的治理能力。 - -2. **方案介绍:** 目前存在两种方案设计,二者之间的区别主要体现在接入方式的不同。由于我们需要结合两个框架,此时必然会有一个框架的接口需要被调整改动。其中,方案一,倾向于保留 Kitex 现有框架的设计;方案二,倾向于保留 Polaris 的接口。经过讨论,决定采用方案一,详见 [Issue](https://github.com/cloudwego/kitex/issues/421)。 - -## 议程 6:社区建议 - -大家围绕源码解析文章的收集、发布形式展开了讨论。 - -1. **收集形式:** ① 建议将其以“ RPC 框架学习百科全书”,或者“框架学习指南”的形式,作为开源活动放在社区里,由大家进行内容补充;② 也可以以任务认领的形式发布社区,邀请社区成员参与源码解析。 - -2. **发布形式:** ① 可以考虑通过公众号宣传;② 也可以发布在 CloudWeGo 官网 和 Github 的 Wiki 里面。 - -## 议程 7:Q&A - -**Q:我们是否也要把对接阿里云的相关基础设施统一放在一个 Suite 里面?** - -A:目前还没有对接服务治理,我们的规划是:第一阶段支持注册中心和可观测系统的接入。比如,对Nacos 注册中心这块做了一些无侵入式配置的扩展对接,然后我们通过 OpenTelemetry 去接入阿里云的可观测系统;第二阶段,我们准备通过 Middleware 或 Suite 的方式对接开放服务治理的能力。现阶段的工作主要是对 Kitex 的 [Nacos registry](https://github.com/kitex-contrib/registry-nacos) 展开了优化,然后结合 OpenTelemetry 这一扩展,去重构 Kitex Easy-Note Demo。 - -**Q:单测每次 CI 都会出报告吗?上次想加到 awesome go ,但是他们对覆盖度有要求。** - -A:可以点进 CI 的 Show all checks 查看测试报告,同时,在[单测新手任务](https://github.com/cloudwego/kitex/issues/372)完成之后,项目整体的单测覆盖率提高之后,我们也可以去设置覆盖率的门禁,后续 CI 检测会去检查单测覆盖率,并且输出到 PR 评论中。 - -## 相关资讯 - -截至 4 月 21 日,历时 5 个月,**CloudWeGo-Kitex** 完成了 3000 Stars 到 **4000 Stars** 的跨越,来到新的里程碑! diff --git a/content/zh/community/meeting_notes/2022-05-19/_index.md b/content/zh/community/meeting_notes/2022-05-19/_index.md deleted file mode 100644 index 2722dd848ac..00000000000 --- a/content/zh/community/meeting_notes/2022-05-19/_index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: CloudWeGo 社区会议 5.19 -linkTitle: CloudWeGo 社区会议 5.19 -date: 2022-05-19 -weight: 6 -description: > ---- - -**会议主题**:CloudWeGo 社区会议 5.19 - -**参会人:** YangruiEmma, ag9920, Jiang Xuewu, liu-song, Joway, yccpt, Huang Yuting, CoderPoet, li-jin-gou, GuangmingLuo, simon0-o, scotty, yiyun, Authorixy, JZK-Keven, bodhisatan, ppzqh, Jacob953, Ivnszn, cyyolo, debug-LiXiwen, baize - -**会前必读:** [官网](/) -https://github.com/cloudwego - -**录屏链接:** https://bytedance.feishu.cn/minutes/obcn3zdn1g46avv887i11ms9?from=from_copylink - -### 议程 1 :社区近期项目开源规划介绍 @GuangmingLuo - -1. 介绍新的开源项目 Frugal,欢迎感兴趣的同学熟悉并参与此项目。Kitex 下一个版本正式支持 Frugal,Kitex 新版本发布之后正式对外发文分享与宣传 Frugal。 -2. Hertz 预计会在 5 月底或者 6 月初正式对外开源。正式开源后会发布会发布新手任务(代码层面 + 文档翻译),欢迎大家踊跃参与。 - ---- - -### 议程 2 :Kitex 单测任务进展梳理 @GuangmingLuo - -1. **完成进度:7/14** -2. **提交 \*\***PR\***\* 注意事项:** - - 1. 一定注意 CI 报错,及时修复错误; - 2. 遵守 Issue Description 提到的要求; - 3. 提交 PR 的同学加快进度,团队内部负责 Review 的同学加紧跟进。争取在 5 月份的下一个版本发布之前,可以合入这些 PR。 - 4. 需要 Rebase 的 Develop 代码单测错误已得到修复,Rebase 一下 Develop 分支代码即可解决。 - -3. 因疫情影响,目前居家办公,给所有贡献者邮寄礼物进程会推迟,复工后统一邮寄。请同学们不用过于担心,承诺的礼物一定送到。 - ---- - -### 议程 3:Kitex 对接 xDS 方案介绍 @ppzqh @CoderPoet - -1. 相关文档:[Kitex 对接 xDS 总体技术方案设计](https://bytedance.feishu.cn/docx/doxcnQMRyKL6OcOg0lFR7W3PQIg?from=from_copylink) -2. 提炼功能,在 Kitex 上面提一个 Issue,对要做的 Feature 做背景和方案概述,拆分开发工作量,方便社区里面感兴趣的同学参加。 -3. 会议后已建好 Issue:https://github.com/cloudwego/kitex/issues/461 - ---- - -### 议程 4:Kitex mall demo 介绍 @bodhisatan - -1. 很多 RPC 框架都有一个偏官方的电商 Demo,如 Kratos 和 Go-zero。 -2. 相关文档:[KiteX mall demo](https://bytedance.feishu.cn/docx/doxcnH8H3YudKN2vxC3BDgoEb7c) -3. 拆分细化任务之后,号召社区交流群及社区用户群的同学来参与,同时对外宣传。 -4. 目前社区任务分工:@daidai21(付韦虎) @@clark(王伟超) - ---- - -### 议程 5:Kitex 源码分析活动介绍 @yiyun - -1. 背景: - a. 从 Java 转到 Golang 或者 Go 语言的同学对 Kitex 有学习需求; - b. 高校同学参加开源夏令营和培训活动,关注到 Kitex。 -2. 活动地址:https://github.com/cloudwego/community/issues/24 -3. 产出: - a. 导师:整体梳理 Kitex 模块,把各个技术点的学习资料做成一套从 0 到 1 的学习笔记。(第一期导师@clark(王伟超) ) - b. 学生:学习笔记、源码解读文章。 - ---- - -### 议程 6:CloudWeGo 公众号官宣 @yiyun - -1. 公众号定位:发布包括但不限于社区运行状态、社区新闻、项目版本发布、重要节点活动宣传、Committer 专访。 -2. 官宣:https://mp.weixin.qq.com/s/nSybru-NMdZmdaaQgLM2bQ - ---- - -### 议程7:新成员自我介绍 - -1. 新成员名单:ag9920 baize Jacob953 -2. 社区新成员分别进行自我介绍,主要包含个人基本情况、开源贡献经历和后续参与社区工作内容。 - ---- - -#### 相关资讯: - -新的开源项目 Frugal 已经 Public,欢迎大家熟悉了解并积极参与。 -地址:https://github.com/cloudwego/frugal。 diff --git a/content/zh/community/meeting_notes/2022-06-02/_index.md b/content/zh/community/meeting_notes/2022-06-02/_index.md deleted file mode 100644 index 48dba30bcd8..00000000000 --- a/content/zh/community/meeting_notes/2022-06-02/_index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: CloudWeGo 社区会议 6.2 -linkTitle: CloudWeGo 社区会议 6.2 -date: 2022-06-02 -weight: 7 -description: > ---- - -**会议主题** :CloudWeGo 社区会议 6.2 - -**参会人** :YangruiEmma, baiyutang, joway, yccpt, Huang Yuting, CoderPoet, li-jin-gou, GuangmingLuo, simon0-o, yiyun, JZK-Keven, bodhisatan, Jacob953, cyyolo, debug-LiXiwen, baize, zstone12, You Gaoming, HeyJavaBean, jayantxie, Skyenought - -**会前必读** :[官网](/);https://github.com/cloudwego - -### 议程 1 :新人介绍 - -1. 新成员名单:Skyenought, zstone12, You Gaoming -2. 社区新成员分别进行自我介绍,主要包含个人基本情况、开源贡献经历和后续参与社区工作内容。 - ---- - -### 议程 2 :Frugal 项目介绍 @simon0-o - -1. 相关文档:https://mp.weixin.qq.com/s/b17bSqx9y5AIH3WEx1haog - ---- - -### 议程 3:Integrate Polaris Go SDK to Support Their Service Governance Ability 任务介绍 @jayantxie - -1. 地址:https://github.com/cloudwego/kitex/issues/421 - 已认领 Issue @debug-LiXiwen -2. 继注册发现能力之后,再以 Polaris 为服务治理中心,集成服务治理能力。熔断部分会在 Kitex 中注入 Middleware,通过 Middleware 上报每次请求结果。上报时需要 Polaris 实例,所以需要转换一下,这个转换可以通过缓存用 Key 去做查找。 -3. 此 PR 已经支持外部限流器的实现。可以通过扩展接口传入外部实现的限流器,对接 Polaris 的限流功能。 -4. 关于动态路由和负载均衡,通过扩展 Kitex LoadBalancer 实现。在 Polaris LoadBalancer 里,通过服务发现的实例去构造 Kitex 的实例,在LoadBalancer 接口里把这个实例转换成 Polaris 的实例,再把它写到缓存里。每一次 Pick 时,从 Pick 里找到调用 Polaris 动态路由的 API 对应的子集,再从这些子集里调用负载均衡的 API ,拿到对应实例。这个实例需要转成 Kitex 的 Instance, 所以也需要通过 Key 做查找操作。扩展 Next Picker 只会在第一次选择时执行这个逻辑。 -5. 新建 Polaris 仓库,把原有 Registry-Polaris 仓库代码复制过去,后续只维持新仓库。 - ---- - -### 议程 4:Kitex 源码分析活动进展介绍 @yiyun - -1. 第一期 5.19 — 6.30 进程近半,现有参与人数 93 人,开始撰写及提交笔记 10 人左右。6.1 晚第一次活动会议,讨论过后开了“百人共享”,共同整理 Kitex 基础教程。 -2. 相关文档:[Kitex前传:RPC框架那些你不得不知的故事](https://cloudwego.feishu.cn/docs/doccnSvZ2NZJomRljYWAJG3hCWd?from=from_copylink) 。后续对这些感兴趣同学,可以直接联系逸云,加到 CloudWeGo study group 完成这个教程。 - ---- - -### 议程 5:社区开放性讨论 & QA @GuangmingLuo - -1. 希望有更多感兴趣的同学帮助官网做一些优化,尤其是 Community 内容展示和主页。有前端背景或者对开源项目的前端技术、网站建设感兴趣同学可以联系广明。 - ---- - -#### 相关资讯: - -**Kitex** v0.3.2 已发布! - -[https://github.com/cloudwego/kitex/releases/tag/v0.3.2](https://github.com/cloudwego/kitex/releases/tag/v0.3.2) diff --git a/content/zh/community/meeting_notes/2022-06-16/_index.md b/content/zh/community/meeting_notes/2022-06-16/_index.md deleted file mode 100644 index 2216cdd1d2a..00000000000 --- a/content/zh/community/meeting_notes/2022-06-16/_index.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: CloudWeGo 社区会议 6.16 -linkTitle: CloudWeGo 社区会议 6.16 -date: 2022-06-16 -weight: 8 -description: > ---- - -**会议主题** :CloudWeGo 社区会议 6.16 - -**参会人** :YangruiEmma, joway, yccpt, CoderPoet, GuangmingLuo, simon0-o, yiyun, bodhisatan, Jacob953, cyyolo, HeyJavaBean, Skyenought, Quan Hu, ppzqh, ZhangHanAA, Suo Dianjun, Yin Xuran - -**会前必读** :[官网](/);https://github.com/cloudwego - -### 议程 1 :Hertz 项目介绍 @Yin Xuran - -1. **项目地址:** https://github.com/cloudwego/hertz/blob/develop/README_cn.md -2. **项目背景:** Hertz 之前,字节跳动内部使用的 HTTP 框架是基于 Gin 进行了一层封装。存在的问题:Gin 出现 Bug 无法修复;难以迭代支持一些 Feature;随着业务发展性能不足逐渐显现,且难以改变。 -3. **Hertz 定位 :** - -- 超大规模企业级实现,拥有极强的稳定性。 -- 微服务框架。完善 CloudWeGo 的生态矩阵,让 CloudWeGo 成为云原生最佳的解决方案之一,从而向客户推广。 -- 开箱即用的框架。包括比如搭积木的能力,用户可以按需组装模块;可能会生成一些 Client 代码,可以方便用户 Benchmark 或者帮助用户去调试,甚至生成一些生产上的代码。 -- “三高”的框架。高扩展性、高易用性和高性能。 - -4. **内部使用情况:** 是内部最大的 HTTP 框架,在内部线上有 1w+ 的服务峰值,QPS 4000w+。某些典型服务迁移 Hertz 后,相比 Gin 框架,CPU 使用率降低 30%—60%。 -5. **Roadmap:** - -- 无缝接入微服务体系。支持 xDS API,从 Istio 动态获取服务配置。 -- 有更完善的生态。如 CORS、Trace、Metrics 、反向代理、Session 等。 -- 支持多协议。Hertz 目前只开源了 HTTP1 的部分,未来还会开源其他协议,如:HTTP2、Websocket、ALPN 等。 -- 更高的性能。结合用户需求,持续迭代。 - -6. **6.21** 官宣后会开放新手任务,以及社区参与指南,欢迎大家参与 Hertz 社区贡献。 - ---- - -### 议程 2 :Hertz Swagger & JWT Middleware @bodhisatan - -1. 项目地址:https://github.com/hertz-contrib/swagger;https://github.com/hertz-contrib/jwt -2. 贡献了 Hertz 的两个插件,Swagger 和 JWT。Fork 了 Gin 排名比较高的对应的仓库,然后对赫兹做适配,争取让开发者比较方便的从 Gin 切换到 Hertz。过程中需要看一些赫兹的接口源码,保证 Hertz 和 Gin 的表现相同。 -3. 对 Hertz 源码感兴趣的初学者可以从这里入手,建议社区也可以考虑把一些 Gin 里面常见的中间件以 First-good-issue 的形式开放。 - ---- - -### 议程 3:CloudWeGo “全新”社区页面介绍 @Skyenought @yiyun - -1. 地址:/zh/community/ -2. 参考 Google Kubernetes 社区实现,从社区获得相应的图片和文字描述,进行组合。目前上线了中文页面,后续根据社区要求进行改动,比如不定时更新的近期活动可以拆成模板,方便更新。 - ---- - -### 议程 4:CCF 活动进展同步 & CloudWeGo Meetup 预告 @yiyun - -1. 目前已经有 126 个同学加入社区,竞争 5 个 Issue。同学反馈问题是给到高校群体的开发任务量比较少,因此 Hertz 开源建设中,后续会开放出大量的新手任务,如小型的开发任务、文档类的整理任务、活动类任务等。 -2. 已有近 26 位同学参与 Issue 选拔。后续也会有社区的导师持续地跟进开发,11 月底活动结束。 - ---- - -### 议程 5:Q & A - -**Q**:社区 Committer 的申请要求是什么? - -**A**:相关链接:https://github.com/cloudwego/community/blob/main/COMMUNITY_MEMBERSHIP.md - -对社区有贡献的同学可以在 Issue 上面提出申请,相关人员会确认是否同意这个同学成为 Committer。一般来讲贡献比较多的同学会被提名,然后让这个同学自己在 Issue 上面申请。当然,如果同学个人觉得自己贡献比较多,也可以自己提名。如果大家同意会在下面回复,同意的人数足够多就可以加入。 - ---- - -#### 相关资讯: - -6 月 21 日,Hertz 正式官宣开源! -官宣链接:https://mp.weixin.qq.com/s/D1Pol8L9F_5-Yte_k4DH8A - -技术解读:https://mp.weixin.qq.com/s/RC-BJOTEO7WaEemG96yR6w - -5 月 26 日 — 6 月 24 日,CloudWeGo - GLCC 开源编程夏令营开始报名,活动报名链接:https://mp.weixin.qq.com/s/owd13tN5XfKPQs7DeONWng - -6 月 25 日,CloudWeGo & 稀土掘金 Meetup 活动直播,邀请到来自字节跳动、森马电商和华兴证券的资深开发者,向社区分享 CloudWeGo 的最新企业落地实践。 -活动链接:https://mp.weixin.qq.com/s/D93dk-9dw2pQocI4anBXfg diff --git a/content/zh/community/meeting_notes/2022-06-30/_index.md b/content/zh/community/meeting_notes/2022-06-30/_index.md deleted file mode 100644 index ee756658bf2..00000000000 --- a/content/zh/community/meeting_notes/2022-06-30/_index.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: CloudWeGo 社区会议 6.30 -linkTitle: CloudWeGo 社区会议 6.30 -date: 2022-06-30 -weight: 9 -description: > ---- - -**会议主题** :CloudWeGo 社区会议 6.30 - -**参会人** :GuangmingLuo, welkeyever, YangruiEmma, liu-song, byene0923, Ivnszn, ylck, li-jin-gou, stephenzhang0713, Li Zheming, debug-LiXiwen, joway, yccpt, Yin Xuran, JZK-Keven, Li Weiting, Fan Guangyu, Jacob953, errocks, Huang Xiaolong, towelong, powerxu519, jayantxie, baiyutang, skyenought, yiyun, baize, yunwei37, 834810071, LhdDream - -**会前必读** :[官网](/);https://github.com/cloudwego - -### 议程 1 :新人自我介绍 @GuangmingLuo - -1. 新成员名单:stephenzhang0713, yunwei37, errocks, Li Weiting, Huang Xiaolong, towelong, powerxu519, LhdDream, ylck, byene0923 -2. 社区新成员分别进行自我介绍,主要包含个人基本情况、开源贡献经历和后续参与社区工作内容。 - ---- - -### 议程 2 :Good-first-issue 复盘 @GuangmingLuo - -1. Kitex 单测任务还有两个子任务待完成,希望加快进度。后续会持续放出其它新手任务,希望大家可以保持关注并积极参与。后续针对 PR 可能会有单测覆盖率限制,希望后面每一个提交贡献的同学都能补充相关的单测,提升相关模块的单测覆盖率,保证项目的代码质量。 -2. Hertz 文档建设进展: - -- 先前发布了文档翻译类型的新手任务,英文文档建设是项目非常重要的一部分,新手、字节内部同学、国内熟悉英文的用户都可查看。后续也会将项目进行国际化推广,因而英文文档建设也是很有价值的。 -- 英文文档建设可以锻炼英文翻译能力、对项目技术的理解能力,在翻译时要考虑中英文表达方式的差异,不能只是文字对照翻译。也欢迎大家后续对文档翻译进行持续优化,这也是为社区作出重要贡献的方式之一。 - ---- - -### 议程 3 :工程化模板或标准化的讨论 @baiyutang - -1. **Issue 地址**:https://github.com/cloudwego/kitex/issues/500 -2. **背景**:用户在做技术选型的时候,对工具化模板是有一定诉求的,比如说怎样快速便捷生成一些基础的业务代码。对比 Go-zero 框架的 API 生成、RPC 生成、Model 生成以及模版的管理四类命令工具,Kitex 有一些生成客户端代码的命令、生成基础 Handler 方法的服务端代码命令等,如果想满足更多用户的诉求,我们可以确定一个 Layout 或者丰富工具化、生成业务代码方面的命令。 -3. **相关讨论**: - -- Kitex 和 Hertz 有两套单独的 RPC 命令生成工具,生成 Model 可能需要一个总的工具,因为有很多业务诉求是有共性的,这个问题正在考虑中。 -- **Q**:Kitex 和 Hertz 同属一个 Group,命令是否可以相似,如果不去自动指定 Model 的话,可以自动从执行命令最近的文件夹里面找到 Go mod 文件? - **A**:建议提出 PR,相关同学后续会跟进。 - -欢迎感兴趣的同学加入讨论! - ---- - -### 议程 4:Hertz 近期 Roadmap 介绍、实战案例建设、新手任务介绍等等 @welkeyever - -1. Hertz 上周已正式官宣,内部在逐步梳理开源侧的 Roadmap。**主库拆成 Hertz 对外提供的各维度的能力:** - -- HTTP2 在内部已经有一个工程实践,内部很多组件用户已经在使用,但是出于成熟度的考量,还没有正式开源。因此首先后期会补充 HTTP2 的能力,对此感兴趣的同学可以一起参与; -- HTTP3 的 RFC 文档在 6 月份正式发布,这部分也是即将举办的 Byte Camp 的议题,后续的开发工作也会以 Issue 和 PR 的形式直接在主库上展开。也欢迎大家加入到开发过程中; -- 关于协议,如 ALPN 已经开源,后续希望组织好这些协议,把 ALPN 的能力发挥到极致。协议间无感切换是说在用户在使用 Hertz 时,它能够做到一键切换协议版本; -- Automatic TLS 在内部不是刚需,主要面对开源用户。其余各维度的能力也在陆续梳理中。 -- 对于 Hz,后续会提供多场景、高定制化、开箱即用等用户自定义能力,通过 Hz 能够直接一键创建出可以快速上线的一整个代码脚架。还会涉及 API 管理以及生成工具提供一些更高层面的抽象能力,包括屏蔽掉 HTTP 协议相关的 Request Response,给用户生成一些基于 IDL、类似于 RPC 方向的开发体验。欢迎感兴趣的同学一起进行 Hz 工具的打磨。 - -2. **Contrib 仓库为 \*\***Hertz\***\* 提供全方位的组件能力:** - -- Websocket 已经在内部使用一年多,本质上是基于 Gorilla Websocket 的库做适配,因此没有直接开源。后续可作为新手任务。 -- 反向代理与 Websocket 类似,这个实现也是基于 Golang 原生的实现做的适配,没有直接开源。后续可作为新手任务。 -- 常用中间件(Session/Compress/Cache),每个中间件相对独立,所以希望每个同学单独承接,做独立开发。 -- 服务治理相关能力,与 Automatic TLS 类似,在内部会直接卸载到 Service Mesh 上。服务发现、负载均衡、限流、熔断、超时,都在 Service Mesh上有对应的实现。这一系列的服务治理的相关能力也在开源的 Roadmap 中,后续会逐步地将任务梳理出来。 -- 可观测性(Log/Trace/Metrics),我们现在已经做了一些集成的,日志能够支持具体实现注入,Trace 也有相应的埋点,Example 库也提供了类似于使用 Tracing 能力的示例,这些也在规划中。 -- 云原生(Proxyless/一键部署/CICD),Proxyless 在服务治理能力补齐之后会开始做,直接对接 Istio,Kitex 的这部分已经在进行中,Hertz 后续也会逐步补充。一键部署是指部署到第三方云环境的能力,包括集成 CICD 等等,都是 Contrib 仓库会涵盖的。 - -希望已经给 Hertz 提供 PR 或 Issue 的同学多使用,帮助框架进一步做性能提升。细节部分可以在 Hertz SIG 讨论,公共事务可以在开发者交流群进行沟通。 - ---- - -### 议程 5:社区 Mentor 机制介绍 @GuangmingLuo - -1. 上周社区开发者交流群里进行的问卷调查,是为了有针对性地给群里各位新加入的同学提供学习成长路径和帮助,后续会针对大家的意愿,给各位同学匹配对应的 Mentor,遇到问题可以及时跟 Mentor 交流沟通,方便大家快速地学习以及真正地深入到这个项目的开发中,也帮助大家快速成为社区 Committer。 - ---- - -### 议程 6:Issue 任务答疑 Q & A 环节 - -**Q:Hertz 和 Kitex 都要做服务治理,在功能上是不是有些重复?** - -**A:** 二者业务场景不同,整个框架的治理能力是可扩展性的,Kitex 目前在对接 OpenSergo 和 Polaris 等项目,针对服务治理能力做一些集成对接,分别把它们封装成两套不同的服务治理 Suite 进行接入。这部分 Kitex 已经在进行中了,如果后续 Hertz 对应接口扩展性这方面完成准备,也会启动类似这样的集成对接。字节的服务治理能力是由服务网格去实现的,目前 Hertz 框架的服务治理还比较薄弱,因此我们后面会统一对接第三方的服务治理能力,以 Suite 的方法一键集成进来,需要上云的用户就可以一键集成对应不同公务云的通用服务指引能力。有个性化需求的用户可以去做一些集成的对接,但不会对框架的 Core 有侵入。 - -**Q:Hertz 提供 IDL 生成是不是导致与 Kitex 有重叠?** - -A:在 Hertz 中,IDL 主要是用在接口描述上面,在这个接口描述布局下面,生成对应的 HTTP 框架的代码。后续 Kitex 会基于 IDL 做一部分代码生成,但 Hertz 是没有的。本质上其实可以理解为还是 HTTP 协议,跟 RPC 没有任何关系。 - -**Q:既然支持 Thrift 和 PB 两种语言,那是否可能自己开发出一套语言来进行接口描述?** - -A:Thrift 和 PB 都只是在 Hertz 中发挥接口描述的功能。除此之外,我们内部其实都是以 Thrift 的 IDL 做一些描述,包括 RPC 是直接基于 Thrift 生成代码的。其实在 Hertz 这边,我们仅仅只是用了接口描述的能力,如果你想换成自定义协议套都是可以的。后续我们其实也会考虑是否可以设计一套通用的接口描述,撑起整个 Hertz 代码生成逻辑。 - -**Q:因为 Hertz 和 Kitex 字节内部已经有一些应用实践经验,我们可以不仅仅从产品设计上去考虑,而且还要把它当做技术产品去看待,响应市场的需求。针对不同的人群来讲,第一类是不太了解微服务的概念或者实践的人群,第二类是更关注性能测试的中高级的用户,Hertz 和 Kitex 是否可以给出一些最佳实践文档?** - -**A:** 我们最近也开展了类似的源码解读活动,是面向新手和年轻开发者的活动,之后也在陆续整理一些相关概念和知识介绍。至于偏具体业务场景的使用案例,后续我们希望能有更多同学参与进来。这个其实是一个社区攻坚的过程,我们也会尽可能把字节内部已有的比较好的实践进行输出。希望大家能够就是借着这个框架可以自己去做一些相关领域的实践,我们目前也正在搭一个电商的样例,这个项目会在近期完成,最后我们会把它发布出来放在官网。一些企业用户案例也比较有借鉴意义,我们也希望能够在不同行业,比如电商、证券、游戏和机器学习等做一些企业用户的行业标杆。后续我们也会收集和整理相关企业用户进行落地页实现的案例,放在官网统一的位置做展示,让用户和需要做技术选型的同学能够快速地看到,能够了解这个项目究竟能给业务带来什么价值,能在哪些场景上铺开使用。 diff --git a/content/zh/community/meeting_notes/2022-07-14/_index.md b/content/zh/community/meeting_notes/2022-07-14/_index.md deleted file mode 100644 index 77b5ca34e12..00000000000 --- a/content/zh/community/meeting_notes/2022-07-14/_index.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: CloudWeGo 社区会议 7.14 -linkTitle: CloudWeGo 社区会议 7.14 -date: 2022-07-14 -weight: 10 -description: > ---- - -**会议主题** :CloudWeGo 社区会议 7.14 - -**参会人** :GuangmingLuo, Cheng Guozhu, simon0-o, welkeyever, YangruiEmma, liu-song, Ivnszn, CoderPoet, li-jin-gou, joway, bodhisatan, -Fan Guangyu, Jacob953, Wang Yafeng, gova, Huang Xiaolong, Zhang Guiyuan, chenzBin, yccpt, jayantxie, baiyutang, skyenought, yiyun, rogerogers, Zhou Xinyi, baize, LhdDream, Li Congyan, Liu Jia - -**会前必读** :[官网](/);https://github.com/cloudwego - -### 议程 1 :新人自我介绍 - -1. 新成员名单:@王亚峰 @张桂元 @周鑫宜 @rogerogers -2. 社区新成员分别进行自我介绍,主要包含个人基本情况、开源贡献经历和后续参与社区工作内容。 - ---- - -### 议程 2 :Hertz-Contrib/Limiter 组件分享 @LhdDream - -1. 介绍PPT:[过载保护-限流算法.pptx](https://bytedance.feishu.cn/file/boxcnfVCs9Nh6JxfqDkVG2MqyrQ?from=from_copylink) -2. 相关讨论: - -- **Q:** 造成 CPU 负载的因素很多,如何判断这是通过访问量或者高并发请求产生的负载?有时用户的加码程序或者某些在系统上跑的程序也会导致 CPU 负载很高,会不会有限流失误的问题? -- **A:** 如果一个程序出现了问题,CPU 已经负载很高的时候,也没有必要再承担一个请求,因为这个机器的性能已经达到了负荷。 - -3. 后续补充限流算法相关案例和使用算法的趋势图,方便直观感受使用这个组件带来的收益。 - ---- - -### 议程 3 :Hertz-Contrib/Obs-Opentelemetry 设计与应用场景介绍 @CoderPoet - -1. 地址:github.com/hertz-contrib/obs-opentelemetry - -- 默认提供开箱即用 OpenTelemetry Provider; -- 对 Hertz 做了一些 Instrumentation,主要有三点: - - - Tracing - - Support server and client Hertz http tracing - - Support automatic transparent transmission of peer service through http headers // 基于对端服务信息透传,实现服务拓扑能力 - - Metrics - - Support Hertz http metrics [R.E.D] // 做 http metrics 的埋点,实现一些服务的黄金指标 - - Support service topology map metrics [Service Topology Map] // 基于 http headers 透传对端服务信息,生成 Service Topology Map - - Support go runtime metrics - - Logging - - Extend Hertz logger based on logrus - - Implement tracing auto associated logs // 拓展 Hertz logger 接口,基于 logrus hook 机制,从 Context 里面提取相应的 trace context 放到日志里,通过这样的模式实现 trace context 和日志的串联 - -2. OpenTelemetry 目标是实现 Tracing/Metrics/Logging 三个数据的互联互通,但三者本身的成熟度上不同步,在社区状态中,Tracing 基本都是 Stable,Metrics 只有 API 和协议是 Stable 状态,Logging 是 Draft 状态。相关链接:https://opentelemetry.io/status/ -3. Hertz 并不是把 Logging 的 API 集成起来,而只是把协议里面提到的比如 Log Model、Trace ID 如何定义等规范集成,所以即使 Logging 没有达到一定成熟度,也可以使用。关于使用场景: - -- 如果想要实现全链路观测,可以直接集成该。比如访问 Hertz Server 和 Kitex Server 会有一个简单的链路串联,可以输入一些自定义的属性,并且默认也会帮你输入根据 OpenTelemetry 语法规范做的、协议相关的属性; -- 如果想自动做请求维度的一些 RED 指标,比如计算 QPS,只要去把数据源导入就可以做相应的面板绘制; -- Runtime Metrics 也做了自动集成,可以在 Dashboard 里面绘制相应状态; -- 最新的 Jaeger 已经原生支持 OTLP Protocol 获取协议,相当于我们的库可以直接跟 Jaeger Collector 做集成,不需要用 OpenTelemetry Collector 做数据中转。 - -使用场景:github.com/cloudwego/hertz-examples/tree/main/opentelemetry - -4. 相关讨论: - -- **Q:** 如果在 Hertz 使用 Obs 扩展,比如有一个 Trace ID,想快速找到有问题的请求,有没有可能就是把这个 Trace ID 或者是能够唯一标识这一次链路追踪的 ID 返回到 Response 里面去呢? -- **A:** 目前对于这种错误链路,可以在尾采样中做异常全采,不用借助 Response,可以直接在链路搜索里面找到相应的错误那条 Trace,然后看它上游或者下游哪些地方发生了异常。 - ---- - -### 议程 4:关于 Hertz-Template 的优化建议与讨论 @skyenought - -1. 相关文档:[关于 Hertz template 的新 feat](https://ybwflbcn12.feishu.cn/docx/doxcnyQKMUgeqiwNWH8q7zzPeYg) - -原本如果要定义 Template,所有内容都写在 YAML 文件里,需要转移符号判断文本,这样看起来可读性比较差、耦合度高。解决方案是不使用 Body 关键字,添加 TemplatePath,只描述Template 文件在这个项目中的位置,这样分散开来比较方便修改和浏览。经过逻辑判断,要保证 Body 和 TemplatePath 不能同时使用,这样可能会造成混乱。如果是 Body 就直接读 Body 的值,如果是 TemplatePath 就通过 IO 把内容读进来以后再进行模版分析。优化实现有待进一步讨论。 - -2. 相关文档:[Hertz 和 Kitex 对于 IDL 的不同处理](https://ybwflbcn12.feishu.cn/docx/doxcnjXcdN1lYRCDbUkZwLAVokz) - -**Q:** CloudWeGo 一个组织中,代码风格却大不相同。Kitex 因为有 Netpoll 存在,只针对 Linux 环境,所以对后缀不做限定。Hertz 在 Go net, windows 和 Linux 环境都可进行开发,它拥有强规定。它们为什么不能统一风格呢? - -**A:** Apache Thrift 的官方并没有对 Thrift 文件后缀有明确规定,从长期大量的实践来看,有很多用户不会把 Thrift 文件的后缀给改为 `.Thrift`。在内部,以 HTTP 的 IDL 举例,基本都是以 Thrift 或者 PB 的形式存在,所以说我们没有考虑制定拓展名。 - ---- - -### 议程 5: 关于新增的 Biz-Demo 的后续规划 @GuangmingLuo - -1. 地址:https://github.com/cloudwego/biz-demo -2. 新增 Biz-Demo 仓库。第一,存放同时集成 Hertz example 和 Kitex example 的案例;第二,存放各行各业最佳企业落地实践 Examples。正式呼吁感兴趣的同学提交有价值的业务案例! -3. 提交案例可以帮助同学从新手期向成熟期过渡,同时可以更深入地了解各个技术栈,得到较大的自我提升。后续会将好的 Business Demo 做一些推广,在官网上和公众号上都会有展示。参考案例:https://github.com/cloudwego/kitex-examples/pull/28 - ---- - -### 议程 6:Hertz 源码解读活动介绍 @yiyun - -1. 源码解读活动一期结束,对于 RPC 相关基础知识整理了 1.6 万字,可以在 Community 仓库查看。 -2. 源码解读活动二期已经开始,期间有四期直播分享: - -- 了解 HTTP 框架的设计; -- 上手企业级 HTTP 框架 Hertz 的操作实践; -- CSG 一期源码解读优秀成员分享如何进行源码解读; -- 社区 Committer 和 Go 夜读作者分享,如何规划自己的代码学习和提升路径。 - -欢迎大家关注 CloudWeGo 公众号获取相关信息。 - -活动相关资料 Issue 地址:https://github.com/cloudwego/community/issues/33 - -第一期直播回顾:https://meetings.feishu.cn/s/1i38ftnck0f18?src_type=3&disable_cross_redirect=true - -第二期直播回顾:https://meetings.feishu.cn/s/1i3fsqit6jchu?src_type=3 diff --git a/content/zh/community/meeting_notes/2022-07-28/_index.md b/content/zh/community/meeting_notes/2022-07-28/_index.md deleted file mode 100644 index 9af0e14f50f..00000000000 --- a/content/zh/community/meeting_notes/2022-07-28/_index.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: CloudWeGo 社区会议 7.28 -linkTitle: CloudWeGo 社区会议 7.28 -date: 2022-07-28 -weight: 11 -description: > ---- - -**会议主题** :CloudWeGo 社区会议 7.28 - -**参会人** :li-jin-gou, liu-song, GuangmingLuo, pkumza, ag9920, lsjbd, sinnera, welkeyever, YangruiEmma, CoderPoet, stephenzhang0713, joway, Quan Hu, zstone12, Yin Xuran, bodhisatan, Suo Dianjun, Fan Guangyu, Jacob953, Zhang Guiyuan, ppzqh, HeyJavaBean, simon0-o, jayantxie, daidai21, baiyutang, rogerogers, Zhou Xinyi, skyenought, yiyun, cyyolo, baize, Sunxy88 - -**会前必读** :[官网](/);https://github.com/cloudwego - -### 议程 1:Kitex & Hertz 对接 sentinel-go 方案和实现介绍 @GuangmingLuo @skyenought - -1. 相关文档:ybwflbcn12.feishu.cn/docx/doxcnXcNmOMPaWasGNNQ1dib7xh -2. 基于 CloudWeGo 和 OpenSergo 项目合作的背景下,我们会从开源方面做一些合作对接。Sentinel 会作为 OpenSergo 的具体实现,服务治理的相关标准会沉淀在 OpenSergo 里面,Kitex 与 Hertz 对接 sentinel-go 的 PR 均已经被合入。与 Gin 集成方式保持一致,通过 Middleware 的形式,集成 sentinel-go 的 Entry。 -3. sentinel-go 只提供了一个高度封装的方法,对外只能通过中间件的方式进行。提交到 sentinel-go 仓库里的代码后续维护情况还需进一步讨论。 - ---- - -### 议程 2:Kitex 定制框架错误处理和规范介绍 @YangruiEmma - -1. Issue 地址:https://github.com/cloudwego/kitex/issues/511 -2. 背景:对于用户而言,工程实践里面 RPC 异常分成两大类。 - -- RPC 异常。即 RPC 请求失败,对应超时、协议错误、熔断或者限流等等情况; -- RPC 层面成功,用户层面异常。用户把请求发到下游,希望根据他的处理逻辑返回状态码给上游,上游可以通过这些状态码做一些额外处理。这种情况在 RPC 层面其实是请求成功,业务错误属于业务逻辑层面。因此服务监控建议对于 RPC 错误上报为请求失败,而业务层面错误,上报为请求成功,但上报 status_code 用于识别错误码。该能力对于工程实践具有一定的价值。 - -起初,内部要求用户在 Thrift IDL 定义中定义全公司统一的 Base Response 字段,用户通过 Base Response 用户设置业务层面的状态码,我们把这个状态码上报,用户就可以通过监控看到业务层面出现的异常。但是考虑到开源后这套规范并不是很优雅,所以我们想定制一个通用的规范,让用户定义自己的异常。Kitex 本身支持多协议,这一套异常又不能和协议做耦合,因此我们要定义一套通用的接口。 - -3. 接口定义:我们会定义一个 `bizStatusError` 接口。因为 gRPC 用户常用 Status 回传 Error,gRPC 无论是 RPC 真正的框架层面异常,还是用户自定义异常,都使用 Status,其实是没有办法区分的。我们给用户提供的是 gRPC 本身就提供给用户的,即通过 Status 构造 Error,因此我们也要对应地做支持。所以用户可以按照 gRPC 的 Status 实现接口,同时也可以实现 Kitex 定义的这套接口,Kitex 会根据接口判断是否有用户自定义异常,如果是 gRPC 的 Status,我们也会按照 gRPC 的规范通过 HTTPHeader 把错误写到 Header,通过 Header 回传。 -4. 用户使用:服务端可以直接通过 `bizerror` 包构造 `bizStatusError`。调用端可以通过 `bizerror.FromError` 方法判断对端返回的是不是 `bizerror`。 -5. 框架实现:Thrift 和 Kitex Protobuf 对于 RPC 层面的异常是放在 Payload 里面编码的,gRPC 是统一放在 HTTPHeader 里面做编码的。因为考虑用户层面的异常,Thrift 和 Kitex Protobuf 放在 Payload 里面编码不是特别合适,所以我们考虑统一在 Header 里面做返回,不再放在 Payload 里面,Payload 里面只写 RPC 层面的异常。 -6. 框架处理:具体参见 https://github.com/cloudwego/kitex/issues/511。 - ---- - -### 议程 3:关于 CloudWeGo 代码生成工具相关建议和方案的讨论 @lsjbd - -1. Issue 地址:https://github.com/cloudwego/kitex/issues/531 -2. 李纪昀提了关于 Kitex Tool 的改进建议。解答如下: - -- 问题一:第一,Kitex 默认使用 go path 模式,如果没有指定 `-model` 参数,会认为当前项目是在 go path 下,之后尝试搜索 go path source 的相对路径,决定代码输出的前缀。现在 gomodule 已经使用比较广泛,我们是否可以默认在 gomodule 文件承载情况下,直接使用当前已知的 gomodule 不要求参数指定?这里的问题是我们内部还有很多项目不使用 gomodule,所以默认行为一旦改变,可能会产生很多 breaking change;第二,gomodule 不一定在当前目录,所以如果实现必须逐层向上搜索,但这可能会达不到预期的效果。 -- 问题二:我们内部可能会使用一些比较奇怪的 IDL 后缀。在它开发的早期,我们其实做了限制,入口的 IDL 必须是 `.thrift` 或者 `.proto` 。所以理论上这个是可以做支持的,根据 Thrift 还是 Proto 来确定当前的 Tag,只有在其他情况下才要求它必须指定一个 Tag,所以这是可以实现的。 -- 问题三:我们内部已经在考虑,即使不能合并,是否在两者的页面或者参数做一些统一的功能,此外生成代码的结构体将来是否能够复用也在研究中。 -- 问题四:起初设计 Kitex 也考虑过自定义模板,其实 Kitex 本身支持模版还是比较复杂的,因为 Kitex 并不主导生成代码的过程。它底层有 Protoc 和 Thriftgo 这样两个实际的编译器在做生成代码的工作。所以 Kitex 支持自定义模版还需要考虑两个底层的编译器是否能支持自定义模版的问题。而两个编译器都支持插件,所以自定义模版的功能完全可以用插件的功能实现。 - ---- - -### 议程 4:2021-2022 Awesome Contributor 评选事宜 @yiyun - -1. Issue 地址:https://github.com/cloudwego/community/issues/36 -2. 背景:9 月份 CloudWeGo 开源一周年,一年内除了技术迭代,还收获了 100+ 社区贡献者,以及几百名活动布道者。希望通过 Awesome Contributor 评选,表彰和感谢他们对社区的贡献和支持,共有 100 个名额。活动奖励类型、奖励方式、具体范围、评选标准、评选时间和公示参见 Issue 地址。 -3. 8 月 1 日正式开启评选。可以自荐,直接在 Issue 下面评论名单和贡献内容即可。 - ---- - -### 议程 5: Go through good-first-issue & QA @GuangmingLuo - -1. Kitex good-first-issue 地址:https://github.com/cloudwego/kitex/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 - -一个文档翻译任务待领取,两个单测任务完成情况待审核。 - -2. Hertz good-first-issue 地址:https://github.com/cloudwego/hertz/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 - -两个任务待认领:https://github.com/cloudwego/hertz/issues/61;https://github.com/cloudwego/hertz/issues/62 - -(第二个任务可以考虑和 Kitex 对接远程配置中心设置一个通用方案。) - -3. 业务场景 Business 仓库:https://github.com/cloudwego/biz-demo - -欢迎大家提交业务案例! - ---- - -### 相关资讯 - -Hertz v0.2.0 发布! - -相关链接:https://mp.weixin.qq.com/s/OOlO-ng4NVgnh32D2dj8Qw diff --git a/content/zh/community/meeting_notes/2022-08-11/_index.md b/content/zh/community/meeting_notes/2022-08-11/_index.md deleted file mode 100644 index 6dfb29cc038..00000000000 --- a/content/zh/community/meeting_notes/2022-08-11/_index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: CloudWeGo 社区会议 8.11 -linkTitle: CloudWeGo 社区会议 8.11 -date: 2022-08-11 -weight: 12 -description: > ---- - -**会议主题** :CloudWeGo 社区会议 8.11 - -**参会人** :li-jin-gou, GuangmingLuo, pkumza, ag9920, lsjbd, sinnera, welkeyever, YangruiEmma, CoderPoet, joway, zstone12, Yin Xuran, bodhisatan, Fan Guangyu, Zhang Guiyuan, ppzqh, HeyJavaBean, simon0-o, baiyutang, rogerogers, skyenought, cloudwegoIce, cyyolo, baize, Hchenn, Ivnszn, LemonFish - -**会前必读** :[官网](/);https://github.com/cloudwego - -### 议程 1:新人自我介绍 - -1. 新成员名单:@LemonFish -2. 社区新成员进行自我介绍,主要包含个人基本情况、开源贡献经历和后续参与社区工作内容。 - ---- - -### 议程 2:对接远程配置中心的方案介绍 @sinnera - -1. Issue 地址:https://github.com/cloudwego/kitex/issues/574 -2. 背景:Kitex 开源后一直不支持对接外面的配置中心,收到用户反馈有相关需求,比如框架内的服务治理策略以及自定义的配置都有需求对接配置中心,提供拉取和动态更新等功能。详细内容参见 Issue。 -3. 相关讨论:传统配置中心都会有类似的设计,对这套配置每做一次更新,就会发布一个新版本。如果用户想指定发布版本后,在某一个特定的实例上生效,可能就会产生线上同时有不同版本的配置生效的情况。相关问题后续会具体考虑,也可以到 Issue 下参与讨论。 - ---- - -### 议程 3:fastPB 开源项目简介 @Hchenn - -1. Issue 地址:github.com/cloudwego/fastpb -2. fastPB 项目是用生成代码对 PB 进行序列化和反序列化的仓库。官方的 PB 编辑码是通过反射进行的,这个项目编辑码是把所有的编码和解码具体操作通过生成代码的形式直接进行,这样就规避了反射。项目刚刚完成,具体的性能测试还在进行中。 - ---- - -### 议程 4:Hertz 服务注册、发现与负载均衡介绍 & 新手任务 @li-jin-gou - -1. Demo 地址:github.com/li-jin-gou/nacos-demo -2. 背景:外部用户对 Hertz 服务注册发现呼声较高,内部的确也有这一套服务发现并且正在使用,所以开源出来。 -3. 服务注册:Registry 接口的大部分逻辑是参考 Kitex 的实现,因此接口是一样的。注册和取消注册的逻辑放在 Hertz Hook Function(run hook/shutdown hook)里面,启动时注册,关闭时取消注册。 -4. 服务发现:发现是配合 Client 使用的。发现接口分别是 Target/Resolve/Name,Target 就是唯一标识对应服务,这样会返回一个唯一的 Key;Resolve 通过唯一标识获取对应的实例;Name 内部用来和它对应的 Load Balance 做缓存,避免重复创建。 -5. 具体使用实例:github.com/li-jin-gou/nacos-demo/tree/main/example -6. 扩展库:github.com/hertz-contrib/registry。对接 Nacos/ZK/ETCD 等其他注册中心的扩展会放到对应仓库,下周初会把文档补齐,会以 good-first-issue 的形式向社区提供。 -7. 补充:Hertz Registry 扩展与 Kitex 稍有不同,把子项目都放在了同一个仓库。因为 Hertz-contrib扩展库较多,拆分后维护成本较大。因此我们决定放在一个仓库里面,以不同的子项目形式存放。欢迎社区的同学一起来参与共建! - ---- - -### 议程 5:registry-servicecomb 注册中心扩展介绍和演示 @bodhisatan - -1. 相关文档:[ServiceComb服务注册发现](https://bytedance.feishu.cn/docx/doxcn6uiqBdDaFDKjrnwFfNmnEc) (附演示视频录屏) -2. 注册关键逻辑:实现了一个 Register 接口。流程是注册服务,再注册服务实例,做一个异步的心跳保活,然后解除注册。 -3. 解除注册逻辑:如果 Address 是空,直接注销服务;如果 Address 不是空,先注销实例,然后取消心跳保活,通过 Endpoints 查找实例,查找出来之后用 `instanceId` 注销 `MicroServiceInstances`。 -4. 服务发现逻辑:调用了 `FindMicroServiceInstances` 找到下面所有的实例。 - ---- - -### 议程 6:CloudWeGo 一周年技术沙龙活动预告与介绍 @cloudwegoIce - -1. 相关链接:https://mp.weixin.qq.com/s/x0Y7-gn9kwpoDQayS2bo3w -2. 背景:2021 年 9 月 CloudWeGo 正式开源,今年 9 月是正式开源一周年。一年内,CloudWeGo收获了 9000+ star,新增许多开源项目,还有即将新开源一个 Rust RPC 框架。我们会在开源一周年 Meetup 上介绍一年以来的开源历程。 -3. 四个议题: - - - 高性能 RPC 框架 Kitex 内外统一的开源实践 - - 大规模企业级 HTTP 框架设计和实践 - - 新一代基于 Rust 语言的高性能 RPC 框架 - - 开源社区的长期主义与新变化 - CloudWeGo 开源社区实践 - -4. 地点及参与方式: - - - 线上:直接报名参与,群里定时放出参与链接。 - - 线下:北京字节跳动的工区,可以联系 cloudwegoIce 或刘佳同学注册报名。 diff --git a/content/zh/community/meeting_notes/2022-09-08/_index.md b/content/zh/community/meeting_notes/2022-09-08/_index.md deleted file mode 100644 index 01589e50b4a..00000000000 --- a/content/zh/community/meeting_notes/2022-09-08/_index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: CloudWeGo 社区会议 9.8 -linkTitle: CloudWeGo 社区会议 9.8 -date: 2022-09-08 -weight: 13 -description: > ---- - -**会议主题** :CloudWeGo 社区会议 9.8 - -**参会人** :GuangmingLuo, PureWhiteWu, ag9920, lsjbd, simon0-o, liu-song, ylck, CoderPoet, li-jin-gou, pkumza, jasondeng1997, Li Zheming, debug-LiXiwen, joway, Jacob953, Code:Z, HeyJavaBean, jayantxie, baiyutang, rogerogers, warthecatalyst, skyenought, baize, yiyun, Millione, ruokeqx - -**会前必读** :[官网](/);https://github.com/cloudwego - -### 议程 1:CloudWeGo - Rust 开源项目集介绍 @PureWhiteWu - -1. 地址:github.com/cloudwego/volo -2. Volo 是 CloudWeGo-Rust 开源项目集最主要的一个项目,里面包含三部分。一个是同名的 volo,包含了很多通用逻辑,Volo 里面还有一个 gRPC 框架和一个 Thrift 框架,它们的共同部分放在 volo 里面,我们可以用它扩展出很多不同的序列化协议和不同的 Transport 框架。Thrift 框架可以和 Kitex 完全兼容互调。gRPC 框架也是可以和业界的 Tonic、Kitex gRPC 等兼容。 -3. Volo 里面抽象了一个 Motoro 库,这个库采用了 GAT 和 TAIT 特性。 -4. Pilota 是纯 Rust 实现的一个高性能、可扩展、使用 Thrift 与 Protobuf 的编解码以及序列化的实现,不依赖 Protoc。它里面的设计很大程度上是和一个真正的编译器差不多的,设计了自己的 ir 层和 codegen 部分。想学习编译器的同学可以研究一下。 -5. 除了以上三个最主要的项目,还有一些相关项目。Metainfo 是用来传递元信息的基础库,Volo-rs 组织用来存放 Volo 相关的生态库,也欢迎大家一起贡献。如果有对 Volo 感兴趣的同学,可以直接加入用户群,随时在群里提问。 - ---- - -### 议程 2:CloudWeGo Community Membership 新变化 @PureWhiteWu - -1. 地址:https://github.com/cloudwego/community/blob/main/COMMUNITY_MEMBERSHIP.md -2. 背景:首先,随着 CloudWeGo 子项目的扩充,每个子项目可能都有一些不同的维护者,因此以整个组织的形式管理这些权限或直接在仓库里面加权限不再合适;其次,之前 Member 和 Committer 混在一起,晋升层级较少,社区同学晋升空间有限。Approver 和 Maintainer 也需要更明确的定义。 -3. 我们的出发点是为了将在社交媒体平台上写文章宣传 CloudWeGo、但没有代码贡献的同学,与代码贡献者给区分开来,给予他们 Member 的身份,认可他们作为 CloudWeGo 社区的重要成员做出的贡献。同时对于提交代码的同学,他们也有了更加明确的权限和晋升路径的定义。这次规则更新既明确了晋升路径和晋升机制,又明确了每个层级的权利和要求。感兴趣的同学可以点击地址查看详细信息。 - ---- - -### 议程 3:Hertz 的 ReverseProxy 扩展介绍 @skyenought - -1. PR 地址:https://github.com/cloudwego/cloudwego.github.io/pull/337 -2. Hertz 的反向代理分 Server 和 Client,原生 Go 的 SDK 里面拥有反向代理功能,社区也有反向代理的需求,目前在文档建设阶段,准备开源。具体内容可以点击 PR 地址查看。 diff --git a/content/zh/community/meeting_notes/2022-09-22/_index.md b/content/zh/community/meeting_notes/2022-09-22/_index.md deleted file mode 100644 index 61e15dd6d76..00000000000 --- a/content/zh/community/meeting_notes/2022-09-22/_index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: CloudWeGo 社区会议 9.22 -linkTitle: CloudWeGo 社区会议 9.22 -date: 2022-09-22 -weight: 14 -description: > ---- - -**会议主题** :CloudWeGo 社区会议 9.22 - -**参会人** :GuangmingLuo, simon0-o, liu-song, YangruiEmma, CoderPoet, li-jin-gou, wangbei98, FlyDangerFox, Authority, derek3, FGYFFFF, ppzqh, Code:Z, LemonFish, justlorain, HeyJavaBean, Yang Hong, baiyutang, rogerogers, skyenought, baize, Millione, chens - -**会前必读** :[官网](/);https://github.com/cloudwego - -### 议程 1 :新人自我介绍 - -1. 新成员名单:@wangbei98 @justlorain @Yang Hong @chens @FlyDangerFox -2. 社区新成员分别进行自我介绍,主要包含个人基本情况、开源贡献经历和后续参与社区工作内容。 - ---- - -### 议程 2:基于 Kitex 和 Hertz 的 bookinfo 全链路泳道 demo 介绍和演示 @CoderPoet - -1. 地址: - -- bookinfo(附演示 demo) - https://github.com/cloudwego/biz-demo/pull/2 -- xDS - https://github.com/kitex-contrib/xds/pull/5/files -- 项目的工程架构 - github.com/CoderPoet/biz-demo/blob/feature%2Fbookinfo-proxyless-otel-demo/bookinfo/README_CN.md - -2. 背景:在 biz-demo 中使用 kitex 和 hertz 重写 bookinfo 项目。实现的目的是为了以实战的方式演示如何使用 xDS 实现全链路的流量泳道。这个项目是复刻社区的 bookinfo 的部署模式,分为 Productpage、Reviews、Details 以及 Ratings,使用 kitex 和 hertz 完全重写。Productpage 是用 Hertz Server 写的,并且内嵌了 Kitex Client。 Kitex Client 集成了 xDS 的模块,主要负责与控制面的 Istiod 做交互,Istiod 可以动态地根据 xDS 下发路由规则。具体路由规则以及工程架构可点击上方链接查看。 -3. 另一个 PR 对 xDS 本身做了优化,之前用 rpcinfo 的 tag 做灰度标识 Header 匹配,但不太符合日常场景,因为通常用 metadata 传递请求元数据,所以做了相应的改造。具体内容可点击查看上方链接查看。 - ---- - -### 议程 3:Hertz 新手任务介绍与 Cookbook 专项任务介绍 @li-jin-gou - -1. 单测任务:github.com/cloudwego/hertz/issues/257 - 相关文档:[Hertz Cookbook](https://bytedance.feishu.cn/docx/doxcn7SedWQ69Hw9RcoJmaKIdoe) - -2. 目前还有 10 个单侧任务任务待领取,后续也会继续放出扩展类或文档类的 first good issue,欢迎大家积极认领。 -3. Cookbook 背景:当前文档建设过于简陋,易用性方面有待加强,需要持续优化,方便新手使用。Cookbook 分为官方文档和代码示例两部分,目前代码示例待完善。具体官方文档待建设部分及其完善标准可点击上方链接查看,后续欢迎大家积极认领文档任务,官网和文档贡献也是非常核心的社区贡献,优秀的 Contributor 也可以申请成为官网 & 文档的 Committer。 - ---- - -### 议程 4:Hertz pprof 扩展介绍 @wangbei98 - -1. 文档:[Hertz-pprof](https://r3478qhcm9.feishu.cn/docx/doxcnnD5J1EGhKfgp5QDNF0J34b?from=from_copylink) -2. 背景: - -- pprof 是一个可以对 Go 程序的 CPU 内存以及 Goroutine 运行时进行动态信息采样的工具包,采样后以数据的方式展示,从而帮助开发人员进行快速地定位问题。常见的 HTTP 框架以及 gRPC 框架都会有相应的 pprof 扩展。这个扩展的底层实现依赖于 Go 语言内部 runtime/pprof 包,进一步的在 net/http/pprof 包里面对上述的 Go 语言包进行封装,对外提供 HTTP 的服务。 -- 在本项目中,为了在 Hertz 中引入 pprof 的能力,需要对 HTTP 包里面的 pprof 进一步封装。因为 HTTP 包里面 pprof 对外提供的是 http.Handler 以及 http.HandlerFunc,但是 Hertz 并不感知 HTTP 包里面的 http.Handler 以及 http.HandlerFunc,因此需要对其进行转换。具体实现过程请查看上方链接中的文档。 diff --git a/content/zh/community/meeting_notes/2022-10-20/_index.md b/content/zh/community/meeting_notes/2022-10-20/_index.md deleted file mode 100644 index 8368d5e95f5..00000000000 --- a/content/zh/community/meeting_notes/2022-10-20/_index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: CloudWeGo 社区会议 10.20 -linkTitle: CloudWeGo 社区会议 10.20 -date: 2022-10-20 -weight: 15 -description: > ---- - -**会议主题** :CloudWeGo 社区会议 10.20 - -**参会人** :cloudwegoIce, ag9920, YangruiEmma, CoderPoet, li-jin-gou, Ivnszn, liuq19, FGYFFFF, ppzqh, I2ncE, Code:Z, HeyJavaBean, jayantxie, Yang Hong, baiyutang, skyenought, rogerogers, cyyolo, Bai Yang, chens, Millione - -**会前必读** :[官网](/) ; https://github.com/cloudwego - -### 议程 1:CloudWeGo-Volo 0.2.0 新发版介绍 @Millione - -1. 相关链接:[Volo v0.2.0 正式发布:新增支持 Windows](https://mp.weixin.qq.com/s?__biz=Mzg2MTc0Mjg2Mw==&mid=2247490708&idx=3&sn=ae6d24cc1fa426b44c1ec774e8e0cc41&chksm=ce132ef4f964a7e2b469e34278e0dc7100e06e2e3df874e219b195896545778e6f11aa763602#rd) -2. **Volo 已经正式支持 Windows**。在 Volo 的共性方面,首先是关于错误处理,修复了对 Error 类型的约束,即在实现中间件时,对于 gRPC 以及 Thrift 返回的 Error 需要实现一个转换方法,就能转换到框架的 Error 类型中。这样有助于我们做整体的服务治理,还有一些错误判断之类的逻辑功能。 -3. 如果分为 Thrift 和 gRPC,**volo-thrift** 正式支持了 multiplex,与 Ping-pong 模型不同的是不需要发 Request 之后,再等收到一个 Response 才能继续发下一个 Request,multiplex 可以多发多收,用户使用时也只需要指定开启这个特性,使用起来基本无感;最后,在 Thrift 方面,还优化了 write_field_begin 函数,主要是把这个函数内联到我们的框架里面编译,这样在某些场景下有较好的编码优化。 -4. 在 gRPC 方面,**volo-grpc** 支持 uds,因为不需要经过 TCP 等协议开销,在同机上面的跨进程 gRPC 调用会更快,同时在使用 Service Mesh 场景时有好的兼容;同时,volo-grpc 支持 metainfo 进行元信息传递,这个主要是用来在 Client 和Server 端之间进行一些字段信息的传递,之前 gRPC 支持放进 Request Metadata 中,但后续大家都使用 metainfo 可以统一用户在 Thrift 和 gRPC 的使用体验;volo-grpc 增加对 service discovery 和 load balance 的支持,这是 RPC 框架需要的一些能力,这个提供了一些接口,大家如果想实现某些东西,可以根据接口更好地接入。 -5. 除此之外,还有两个改动之处。第一,之前 Rust 在编辑器里有一个 Bug,导致我们的 Nightly 版本一直锁定在 7 月 31 号。目前已被修复,Nightly 版本也不需要限定,在文件里面指定最新版本的 Nightly 即可。第二,在 gRPC 方面接口方法有所增加,还有一些参数名字有所改动。 - -相关地址:https://github.com/cloudwego/volo/blob/main/rust-toolchain.toml - -6. 如果大家想参与共建 Volo,可以多关注 Issue,我们也可以提供解释说明。在 gRPC 方面,Volo 的功能还有欠缺,所以大家可以做的贡献是比较多的。 - -相关地址:https://github.com/cloudwego/volo/issues - ---- - -### 议程二:Kitex 新增 metainfo 示例代码分享 @baiyutang - -1. PR: https://github.com/cloudwego/kitex-examples/pull/42 -2. 背景:9 月初有同学提关于 metadata 元信息的问题,很多人不太清楚具体用法。 -3. 基于背景做了两方面的优化。第一,优化文档;第二,做了代码的示例。文档强调“必须使用支持元信息的透传的底层协议才可用”。代码层面在 Kitex-examples 里做了一个 metainfo 示例。元信息的传递分两类:正向 & 反向,正向的是从客户端传到服务端。并且传递的信息分两种,一种是只传递到它请求的那个服务端,另一种是持续地往后传递。因此我在客户端设置了两个元信息,第一个是假设它请求的第一个服务能接收到,第二个是假设后续的所有的服务都能接收到,并且在服务端都做了判断。如用户想了解用法,通过示例就可以运行起来,优化了框架的使用体验。 - ---- - -### 议程三:Hertz Playbook 进展 & 新晋 Committer 介绍 @li-jin-gou - -1. 当前文档建设的易用性方面有待加强,需要持续优化,方便新手使用。Hertz Playbook 建设正在进行中,大部分文档优化的任务已经分配出去,目前大部分处于 PR 状态,其余任务如果大家感兴趣的话可以联系 @li-jin-gou。 -2. @I2ncE 自我介绍,目前已正式成为 Hertz Committer。 - ---- - -### 议程四:CSG 3 期 Rust Volo & Monoio 项目学习,活动介绍和进度分享 @cloudwegoIce - -1. Issue: https://github.com/cloudwego/community/issues/45 -2. CSG 三期是关于 8 月新开源的 Volo 框架以及 Volo 生态的一些项目,同时还有关注度非常高的 Monoio,都会在第三期里面进行相关的源码解读。第一期直播已经结束,可以关注 **CloudWeGo 公众号**回复 **“Volo"** 查看回放地址。 -3. 第三期的第二和第三场直播会和 Rustcc 社区合作,我们会也把自己的优质项目推到 Rust 基金会和 Rust 中文社区,和他们做比较深度的合作。后续也会有一些新的 Volo 生态和 Rust 生态的 Committer 和 Contributor 加入到我们的社区例会和社区组织中。欢迎大家持续关注。 diff --git a/content/zh/community/meeting_notes/2022-11-03/_index.md b/content/zh/community/meeting_notes/2022-11-03/_index.md deleted file mode 100644 index 5f8a813ef2f..00000000000 --- a/content/zh/community/meeting_notes/2022-11-03/_index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: CloudWeGo 社区会议 11.3 -linkTitle: CloudWeGo 社区会议 11.3 -date: 2022-11-03 -weight: 16 -description: > ---- - -**会议主题** :CloudWeGo 社区会议 11.3 - -**参会人** :GuangmingLuo, Cheng Guozhu, welkeyever, YangruiEmma, liu-song, Chen Rui, li-jin-gou, joway, liuq19, Duslia, bodhisatan, L2ncE, Code:Z, justlorain, CarlCao17, HeyJavaBean, jayantxie, Yang Hong, baiyutang, skyenought, rogerogers, cyyolo, cloudwegoIce, chens, Bai Yang - -**会前必读** :[官网](/) ; https://github.com/cloudwego - -### 议程一:Kitex 生成代码定制默认注入自定义 Suite 介绍 @jayantxie - -1. 官网链接:[Extend the Templates of Service Generated Code](/docs/kitex/tutorials/code-gen/template_extension/) -2. 目前字节内部的治理逻辑会封装到 Suite 里面,通过直接生成代码的方式提供给用户,用户在启动的时候就不用手动地引入 Suite Option。为了方便外部用户在生成代码里面扩展这个功能,我们也提供了这样一个功能。用户在生成代码时,可以通过 `-template-extension` 传入一个 `extensions.json` 文件,这个文件可以把 Suite 的代码注入到生代码里。`extensions.json` 是一个 JSON 文件,实现的是 [TemplateExtension](https://pkg.go.dev/github.com/cloudwego/kitex/tool/internal_pkg/generator#TemplateExtension) 的对象,这个对象里面有一些已经完成定义、可以注入到特定位置的代码。 -3. Example: /docs/kitex/tutorials/code-gen/template_extension/#example 如果 Client 端需要注入一个 Suite,可以通过 `extend_option` 加一行代码,把用户自定义 package 里面的 Suite 注入进来,我们生成的代码里面就自动包含了这个 Suite,方便用户使用。具体字段含义是,通过 `import_paths` 导入包,`extend_file` 主要功能是可以在生成代码里面提供一些全局的工具函数,如果用户需要提供公共方法,那么可以在这里注入。Server 端与之类似,比如需要公司内限流之类的功能,也可以通过封装到 Server Suite 里面注入代码即可实现,业务不用再导入对应的包。 - ---- - -### 议程二:Kitex 自定义异常介绍 @jayantxie - -1. Issue 地址:https://github.com/cloudwego/kitex/issues/511 - -官网:/zh/docs/kitex/tutorials/basic-feature/bizstatuserr/ - -2. 背景:这是在 Kitex v0.4.3 提供的功能。我们内部对于用户自定义的异常和 RPC 异常做了区分,因此希望把这个功能提供给外部用户使用,能够将 RPC 错误和业务的错误区分开。在出现故障或排查问题的时候,可以方便找到是链路侧的故障还是业务侧的故障。因此我们对 Kitex 异常处理重新做了实现。 -3. 我们内置 `BizStatusErrorIface` 提供用户实现自定义异常接口,框架同时提供默认实现,用户只需要在 `ServiceHandler` 里返回 Error,就可以在 Kitex 处理的时候把它编码到 TTheader 或 grpc trailer 中。封装完成后通过 Server 传递到 Client 端,Kitex 在解码的时候会对 TTheader 或 trailer 里面字段做特殊处理,把它转成业务 Error,再返回给 Client。这种方式在中间件处理或治理采集时直接跳过了用户自定义异常的处理。因此我们通过在业务 handler 里面直接返回 `BizStatusErrorIface` 不会触发熔断和链路异常等情况,它仅用于用户之间业务 Error 的传递。 -4. TTheader 用法说明:https://github.com/cloudwego/kitex/pull/613/files 因为对外我们没有默认封装使用的 MetaHandler 和协议,自定义异常又借助于 TTheader 或 grpc Handler 的实现,所以 TTheader 协议的用户需要在 Server 里面初始化的时候,手动地初始化 TTheader 的 MetaHandler。在 Client 初始化的时候,同样指定 TTheader 协议,然后加载 TTheader 的 MetaHandler,这样才可以解析对应的字段。在 Server 使用的时候如果遇到业务异常,可以直接在 Handler 里面返回 Error。它主要包含的信息有:`StatusCode` 业务的状态码;`StatusMessage` 业务侧信息。Client 侧提供了对 Error 的识别,收到 Error 后,可以通过 `kerrors.FromBizStatusError` 把它转换成业务异常。收到业务异常后,我们就可以对不同的状态码做特殊的处理。 -5. grpc 的用法与之类似,grpc在 `StatusError` 里面提供了 Details 功能,所以我们在业务异常里面同样也提供了这个功能。用法可以参考代码示例:https://github.com/cloudwego/kitex/blob/develop/pkg/kerrors/bizerrors.go#L73。 -6. 补充:这个功能对于 Thrift 更建议的用法是 IDL 里面定义一个 Exception,这样用户可以很明确地构造它定义的 Exception。我们做这个支持不可能耦合于 Thrift 协议,PB 的 IDL 是没有这个能力的,因此提供了这样比较通用的方式。@YangruiEmma - ---- - -### 议程三:Hertz Lark 扩展库介绍 @li-jin-gou - -1. 项目地址:https://github.com/hertz-contrib/lark-hertz - -飞书开放平台文档:https://open.feishu.cn/document/ukTMukTMukTM/uETO1YjLxkTN24SM5UjN - -Go SDK 说明文档:https://github.com/larksuite/oapi-sdk-go/blob/v3_main/README.md - -2. 背景:飞书开放平台有一个 Go SDK 说明文档,最初里面卡片和消息的回调配置介绍只有 Gin 框架的。有同学反馈找不到 Hertz 如何集成的说明,实际 Hertz 有这部分的能力,但是一直是内部的代码没有开源出来。之前用户通过这个平台点到 Go SDK 说明文档,并不能很方便地能找到对于 Hertz 的支持。所以和 Lark 负责 Go SDK 的同学说明情况后,和他们一起把 Lark 集成 Hertz 的能力开源出来。这个仓库目前放在了 Hertz 扩展库里面。如果大家感兴趣可以体验一下,在处理事件消息回调的情况下使用这个扩展会比较方便。 -3. 使用场景:处理卡片和消息事件行为的回调。基于 oapi-sdk-go 做了一层封装,方便用户使用框架接入 SDK。关注 Hertz 的同学也更方便找到相关的内容。 diff --git a/content/zh/community/meeting_notes/_index.md b/content/zh/community/meeting_notes/_index.md deleted file mode 100644 index f4be686c7f5..00000000000 --- a/content/zh/community/meeting_notes/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "会议记录" -linkTitle: "会议记录" -weight: 20 -menu: - main: - weight: 20 - parent: "社区" ---- diff --git a/content/zh/community/overview/_index.html b/content/zh/community/overview/_index.html deleted file mode 100644 index 9880f7e1aef..00000000000 --- a/content/zh/community/overview/_index.html +++ /dev/null @@ -1,158 +0,0 @@ ---- -title: 概述 -weight: 10 -menu: - main: - weight: 10 - parent: "社区" ---- - -
-
-
-

- 一个由开发者来定义的开源社区 -

- 这里有一群致力于打造「 高性能、可拓展、高可靠 」框架项目的开发者们,我们有着不同的身份、来自不同的企业、承担着不同的角色, - 却在社区内,通过社区活动和开源协作,推进项目功能演进,拓展着 CloudWeGo 的开源生态。 - 开源开放,多元包容!共同定义着什么才是「CloudWeGo 社区」。 -

- 在这里,我们有关注开发者从0到1成长的 CSG 小组(CloudWeGo Study Group),CloudWeGo - 社区文化乐于分享和帮助开发者共同成长。在这里,我们有社区例会和社区 Meetup 活动, - 让成员更加方便的参与社区日常运营和开发任务,共同推进项目演进。 - 在这里,我们有真正志同道合的开源伙伴:有为了帮助项目技术分享和获得更多开发者反馈的布道师、有热衷技术并不断挑战优化的开发者、 - 有持续关注技术进展和开源发展的高校群体、有帮助项目上下游生态落地的合作伙伴、有持续不断为项目提供真实需求反馈的企业用户。 -

- 我们欢迎更多希望打造一个 真正优质、体检更佳、业界顶尖开源项目 的同学加入我们!共同建设,享受开源的魅力与乐趣! -

-
- - - - - -
-

贡献者名单

-

- 如何成为社区 Committer ? -

- 其中展示了从成立至今经过 CloudWeGo 社区认证的 Committer 们 (排名不分先后) -

- - - - 查看全部 - - -
- -
-

社区周报

-

- CloudWeGo 社区例会和双周进展动态,将会更新在社区周报中

- - - 继续阅读 - - -
- -
-

讨论

-

- 社区开发者们都在关注那些技术热点?日常会如何进行技术讨论和答疑解惑? - 欢迎加入社区讨论组,和社区开发者们共同交流。我们有以下方式可参与到社区讨论中 -

-
-
-
- - Feishu - - 飞书群  ▶ -

更快速的企业支持:企业使用场景、技术问题可被快速跟进

-
- -
- - GitHub - - GitHub ▶ -

关于项目的 issue 和pr 请在这里提交

-
-
- - Discord - - Discord ▶ -

更适合海外同学参与社区

-
-
- -
- -
-

会议记录

-

这里记录了 CloudWeGo 双周例会会议纪要和例会分享材料

- -
-
-
-

往期活动

- - - - 查看更多往期活动 - - -
diff --git a/content/zh/community/past_activities/_index.md b/content/zh/community/past_activities/_index.md deleted file mode 100644 index f62b2b07724..00000000000 --- a/content/zh/community/past_activities/_index.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: 往期活动 -weight: 40 -menu: - main: - weight: 40 - parent: "社区" ---- - -- [CloudWeGo 开源一周年技术沙龙](https://juejin.cn/live/1040934) -- [🏅 2021-2022 CloudWeGo Awesome Contributor 评选](https://github.com/cloudwego/community/issues/36) -- [CloudWeGo:从开源、开放到企业落地](https://live.juejin.cn/4354/cloudwegoday001) -- [GitHub 9K Star!字节高性能开源微服务中间件 CloudWeGo 技术沙龙来了!](https://juejin.cn/post/7132004535748263943) diff --git a/content/zh/community/weekly_report/10th/_index.md b/content/zh/community/weekly_report/10th/_index.md deleted file mode 100644 index a2ac7305120..00000000000 --- a/content/zh/community/weekly_report/10th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第10期周报 -linkTitle: CloudWeGo 第10期周报 -weight: 1 -description: > ---- - -**第10期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_10th_weekly_report.png) diff --git a/content/zh/community/weekly_report/11th/_index.md b/content/zh/community/weekly_report/11th/_index.md deleted file mode 100644 index 608fd00e354..00000000000 --- a/content/zh/community/weekly_report/11th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第11期周报 -linkTitle: CloudWeGo 第11期周报 -weight: 1 -description: > ---- - -**第11期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_11th_weekly_report.png) diff --git a/content/zh/community/weekly_report/12th/_index.md b/content/zh/community/weekly_report/12th/_index.md deleted file mode 100644 index 5659e8d9ef0..00000000000 --- a/content/zh/community/weekly_report/12th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第12期周报 -linkTitle: CloudWeGo 第12期周报 -weight: 1 -description: > ---- - -**第 12 期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_12th_weekly_report.jpg) diff --git a/content/zh/community/weekly_report/13th/_index.md b/content/zh/community/weekly_report/13th/_index.md deleted file mode 100644 index cc3b5e1e579..00000000000 --- a/content/zh/community/weekly_report/13th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第13期周报 -linkTitle: CloudWeGo 第13期周报 -weight: 1 -description: > ---- - -**第 13 期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_13th_weekly_report.jpg) diff --git a/content/zh/community/weekly_report/14th/_index.md b/content/zh/community/weekly_report/14th/_index.md deleted file mode 100644 index 7e31df3e131..00000000000 --- a/content/zh/community/weekly_report/14th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第14期周报 -linkTitle: CloudWeGo 第14期周报 -weight: 1 -description: > ---- - -**第 14 期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_14th_weekly_report.png) diff --git a/content/zh/community/weekly_report/15th/_index.md b/content/zh/community/weekly_report/15th/_index.md deleted file mode 100644 index 352fc98b0d3..00000000000 --- a/content/zh/community/weekly_report/15th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第15期周报 -linkTitle: CloudWeGo 第15期周报 -weight: 1 -description: > ---- - -**第 15 期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_15th_weekly_report.png) diff --git a/content/zh/community/weekly_report/16th/_index.md b/content/zh/community/weekly_report/16th/_index.md deleted file mode 100644 index 05fed2a10ef..00000000000 --- a/content/zh/community/weekly_report/16th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第16期周报 -linkTitle: CloudWeGo 第16期周报 -weight: 1 -description: > ---- - -**第 16 期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_16th_weekly_report.png) diff --git a/content/zh/community/weekly_report/17th/_index.md b/content/zh/community/weekly_report/17th/_index.md deleted file mode 100644 index 2e6c09f6095..00000000000 --- a/content/zh/community/weekly_report/17th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第17期周报 -linkTitle: CloudWeGo 第17期周报 -weight: 1 -description: > ---- - -**第 17 期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_17th_weekly_report.png) diff --git a/content/zh/community/weekly_report/18th/_index.md b/content/zh/community/weekly_report/18th/_index.md deleted file mode 100644 index e04b967e2a3..00000000000 --- a/content/zh/community/weekly_report/18th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第18期周报 -linkTitle: CloudWeGo 第18期周报 -weight: 1 -description: > ---- - -**第 18 期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_18th_weekly_report.png) diff --git a/content/zh/community/weekly_report/19th/_index.md b/content/zh/community/weekly_report/19th/_index.md deleted file mode 100644 index 8cd656b53df..00000000000 --- a/content/zh/community/weekly_report/19th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第19期周报 -linkTitle: CloudWeGo 第19期周报 -weight: 1 -description: > ---- - -**第 19 期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_19th_weekly_report.png) diff --git a/content/zh/community/weekly_report/20th/_index.md b/content/zh/community/weekly_report/20th/_index.md deleted file mode 100644 index a09db5f911a..00000000000 --- a/content/zh/community/weekly_report/20th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第20期周报 -linkTitle: CloudWeGo 第20期周报 -weight: 1 -description: > ---- - -**第 20 期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_20th_weekly_report.png) diff --git a/content/zh/community/weekly_report/21th/_index.md b/content/zh/community/weekly_report/21th/_index.md deleted file mode 100644 index c8d7f4b6150..00000000000 --- a/content/zh/community/weekly_report/21th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第21期周报 -linkTitle: CloudWeGo 第21期周报 -weight: 1 -description: > ---- - -**第 21 期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_21th_weekly_report.png) diff --git a/content/zh/community/weekly_report/5th/_index.md b/content/zh/community/weekly_report/5th/_index.md deleted file mode 100644 index d1a78bef23b..00000000000 --- a/content/zh/community/weekly_report/5th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第05期周报 -linkTitle: CloudWeGo 第05期周报 -weight: 1 -description: > ---- - -**第5期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_5th_weekly_report.png) diff --git a/content/zh/community/weekly_report/6th/_index.md b/content/zh/community/weekly_report/6th/_index.md deleted file mode 100644 index cbbde41e6c2..00000000000 --- a/content/zh/community/weekly_report/6th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第06期周报 -linkTitle: CloudWeGo 第06期周报 -weight: 1 -description: > ---- - -**第6期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_6th_weekly_report.png) diff --git a/content/zh/community/weekly_report/7th/_index.md b/content/zh/community/weekly_report/7th/_index.md deleted file mode 100644 index 970b608ee4f..00000000000 --- a/content/zh/community/weekly_report/7th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第07期周报 -linkTitle: CloudWeGo 第07期周报 -weight: 1 -description: > ---- - -**第7期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_7th_weekly_report.png) diff --git a/content/zh/community/weekly_report/8th/_index.md b/content/zh/community/weekly_report/8th/_index.md deleted file mode 100644 index 227992d7c26..00000000000 --- a/content/zh/community/weekly_report/8th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第08期周报 -linkTitle: CloudWeGo 第08期周报 -weight: 1 -description: > ---- - -**第8期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_8th_weekly_report.png) diff --git a/content/zh/community/weekly_report/9th/_index.md b/content/zh/community/weekly_report/9th/_index.md deleted file mode 100644 index ab737fef81d..00000000000 --- a/content/zh/community/weekly_report/9th/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CloudWeGo 第09期周报 -linkTitle: CloudWeGo 第09期周报 -weight: 1 -description: > ---- - -**第9期周报** - -![image](https://raw.githubusercontent.com/cloudwego/community/main/weekly_report/CloudWeGo_9th_weekly_report.png) diff --git a/content/zh/community/weekly_report/_index.md b/content/zh/community/weekly_report/_index.md deleted file mode 100644 index fabcd3d1a35..00000000000 --- a/content/zh/community/weekly_report/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: 周报 -weight: 30 -menu: - main: - weight: 30 - parent: "社区" ---- diff --git a/layouts/404.html b/layouts/404.html index b9723916d02..d0a7aedfa1e 100644 --- a/layouts/404.html +++ b/layouts/404.html @@ -10,7 +10,7 @@

{{ T "error_page_title" }}

{{ T "error_404_were_you_looking_for" }}