9 月 8 日,字节跳动正式宣布开源 CloudWeGo,这是一套以 Go 语言为核心、专注于微服务通信与治理的项目集合。基于字节跳动基础架构团队构建分布式系统的成功实践,CloudWeGo 具有高性能、可扩展、高可靠的特点。
在抖音等 App 亿级流量背后,字节跳动基础架构团队开发的技术底座支撑着庞大的微服务生态系统。从 2018 年至今,该团队维护的在线微服务数量增长了近 600%,已达到 5 万的规模。CloudWeGo 也在此过程中持续迭代和完善。
目前,CloudWeGo 有四个项目集合:
1、Kitex:Kitex 是字节跳动研发的下一代高性能、强可扩展的 Golang RPC 框架。除了具备丰富的服务治理特性,它还集成了自研的网络库 Netpoll,支持多消息协议和多交互方式,提供更加灵活可扩展的代码生成器。
2、Netpoll:这是一个基于 Golang 的高性能、I/O 非阻塞网络框架,专注于 RPC 场景。它借鉴了 evio 和 netty 的优秀设计,具有出色的性能,更适用于微服务架构。
3、Thrfitgo:用 Golang 实现的 Thrift 编译器,支持插件机制,支持完整的 Thrift IDL 语法和完善的语义检查。目前后端支持 Go 语言。
4、netpoll-http2:基于官方 HTTP2 源码改造使用 Netpoll,提供高性能的 HTTP2 通信。
字节跳动相关技术负责人介绍,CloudWeGo 不仅仅是一个开源项目,也是企业级的超大规模实践项目,“通过开源,我们希望 CloudWeGo 能丰富云原生社区的 Golang 工具体系,为更多开发者和企业搭建云原生化的大规模分布式系统,提供一种现代的、资源高效的的技术方案。”
据悉,字节跳动基础架构团队将会在内外部维护一套 CloudWeGo 代码,统一迭代演进。
GitHub 项目地址:https://github.com/cloudwego
CloudWeGo 官网:https://www.cloudwego.io