来源|CloudWeGo 开源社区
2014 年,为了应对长连接推送业务中的 高并发 挑战,字节跳动引入了 Golang。由于其出色的性能,Golang 很快成为解决核心问题的利器。仅两年后,技术团队基于 Golang 打造了一个名为 Kite 的 RPC 框架,并对开源项目 Gin 进行了轻量级封装,推出了 Ginex。随着这两个框架的发布,Golang 在字节跳动内部的应用迅猛增长。
由于 Kite 与 Thrift 深度耦合,很难从网络模型或编解码层面改造优化,继续支持新特性势必会造成代码越发臃肿迭代受阻问题,于是字节跳动的服务框架团队在 2019 年重新设计了 Go RPC 框架,并自研了网络库,致力于提升性能和可扩展性。到了 2020 年 4 月,新的 Kitex 框架正式发布并上线。此后,类似的设计思路和底层模块也被应用于字节跳动自研的 Golang HTTP 框架 Hertz 中,它在 2021 年春节期间承受了大规模线上流量的考验。
随着技术的不断探索,我们注意到了 Rust 这门语言,并被其三大优势所吸引: 卓越的性能、极强的安全性以及方便协作的特性 。我们决定尝试使用 Rust 来开发服务端微服务,以解决性能上的挑战。但是,纵观整个 Rust 社区,我们发现缺乏生产级别的 Async Thrift 实现,在服务治理和易用性方面也有所欠缺。因此,字节跳动开始自研 Rust RPC 框架和相关生态。
到了 2021 年 9 月, CloudWeGo 的第一批微服务框架和组件——包括 Golang RPC 框架 Kitex 和网络库 Netpoll ——开源。随后,在 2022 年 6 月和 8 月,我们分别开源了 Golang HTTP 框架 Hertz 和 Rust RPC 框架 Volo 。2023 年,我们继续拓展开源生态,推出了 Golang RPC 编解码基础库 Dynamicgo 和高性能进程间通信库 Shmipc ,并发布了 Volo HTTP 框架。
截至 2023 年年底,CloudWeGo 社区发展迅速,生态日益丰富。在 Kitex 项目上,我们实现了与 Dubbo 的互通 ,支持 Dubbo Java 用户往 Golang 迁移;并完善了对主流配置中心的集成,让用户能够 动态获取服务治理配置 ,准实时生效。Hertz 项目则加入了更多通用能力的中间件,如 SSE、Gzip、Sentry、CORS、Etag 等,以服务于广大内外部用户。这些进展都得益于来自各行各业的社区开发者,包括许多高校学生的参与和贡献,使我们的社区成员人数在 2023 年底超过了 300 人,形成了一个充满活力和归属感的开源家庭。
开源项目的成功不仅在于技术建设,更关键的在于其在实际场景中的落地应用。目前 CloudWeGo 的企业用户已超过 40 家,涵盖 AI、电商、金融、游戏 等多个行业,用户普遍反馈项目带来了性能提升、成本优化和稳定性增强等多方面的收益。2023 年 12 月,我们发布了《CloudWeGo 技术白皮书:字节跳动云原生微服务架构原理与开源实践》,以支持更多企业用户参考和落地。
2024 年,CloudWeGo 将持续对项目功能、易用性进行打磨和优化,继续对企业用户落地提供大力支持,与社区合作伙伴和开发者共同构建业界领先并广泛应用的 Go & Rust 微服务开源生态。
2023 CloudWeGo 所获荣誉与证书
项目地址
GitHub:https://github.com/cloudwego
官网:www.cloudwego.io
**点击【** **阅读原文** **】查看**