Thriftgo 目前虽然仅支持生成 Golang Thrift 代码,但其定位是可支持各语言的 Thrift 代码生成,未来如果有需求,我们会考虑生成其他语言的代码 。同时我们也会尝试将其回馈至 Apache Thrift 社区 。
Netpoll-http2Netpoll-http2 基于 Golang 标准库 golang.org/x/net/http2 的源码替换 go net 为 Netpoll,目前用于 Kitex 对 gRPC 协议的支持,对 HTTP2 有需求的外部开发者也可以使用此库 。
内外版本维护完整的微服务体系离不开底层云计算生态,无论是公有云、私有云还是本地基础设施等环境,开发者要搭建微服务,离不开配套的微服务治理,如治理平台、监控、链路跟踪、注册/发现、配置中心、服务网格等,此外还存在一些定制的规范 。
字节跳动自然也有完善的内部服务支持微服务体系,但这些服务短期内无法开源 。为了遵守长期投入承诺,内外维护一套代码、统一迭代,基础架构团队已经将与内部生态没有耦合的项目,如 Netpoll,直接迁移到 CloudWeGo 开源库,并将内部依赖调整为开源库 。
而对于需要集成治理能力融入微服务体系的 Kitex,我们基于其扩展性,对内外部代码做了拆分,把 Kitex 的核心代码迁移到开源库,内部库封装一层壳保证内部用户无感知升级,而集成内部治理特性的模块则作为 Kitex 的扩展保留在内部库 。未来,我们也会持续把已经在字节跳动内部经过稳定性验证的新特性,迁移到开源库 。
对于使用 CloudWeGo 的开发者,大家同样可以对 Kitex 进行扩展,将 Kitex 融入自己所在组织的微服务体系中 。我们也诚挚欢迎开发者能贡献自己的扩展到 https://github.com/kitex-contrib,为更多用户提供便利 。
RoadMap对于基础架构团队,CloudWeGo 不仅仅是一个开源项目,它也是一个真实的超大规模企业级实践项目 。通过开源,我们希望 CloudWeGo 能丰富云原生社区的 Golang 工具体系,为更多开发者和企业搭建云原生化的大规模分布式系统,提供一种现代的、资源高效的的技术方案 。
如前文所述,目前 CloudWeGo 只开源了第一批项目,未来,我们会进一步推动其走向完善:
- 继续开源其他内部项目 。我们会开源更多字节跳动常用 Golang 项目,如 HTTP 框架 Hertz、基于共享内存的 IPC 通信库 ShmIPC 等,为开发者提供更多场景的微服务需求支持 。此前,我们已将部分 Golang 基础工具库开源,统一在 bytedance/gopkg 维护,感兴趣的开发者也可以关注 。
- 逐步开源经验证的、稳定的特性 。CloudWeGo 的主要项目均为字节内部微服务提供支持,许多新特性仍在内部验证,相对成熟后我们会逐步开源,如对 ShmIPC 的集成、无序列化、无生成代码的支持等 。
- 结合内外部用户需求,持续迭代 。项目开源后,我们也会根据开发者需求开展迭代 。例如近一个月来,我们收到了来自开发者的大量关于 Protobuf 的诉求,为了提供良好的支持,我们已经在筹备开展 Kitex 对 Protobuf 支持的性能优化 。
相关链接
- 项目地址:
- https://github.com/cloudwego
- 项目官网:www.cloudwego.io
【字节跳动正式开源内部微服务中间件 CloudWeGo】
推荐阅读
- 分流|重磅消息!25年首次教育大改革,5月1日正式“取消普职分流”
- 小米|小米MIUI重大调整!开发版切换正式版将无需清除数据
- 小米智能眼镜正式发布 小米发布智能眼镜概念新品
- SQL入门 | 如何查询数据?
- 小米|小米正式加入CCC董事会!推进数字车钥匙发展与应用
- 电影|终等来了!《阿凡达2》正式官宣 卡梅隆大作上映时间确定
- 门锁|首发2299元 萤石北斗星视频锁DL30V正式发布:配2K高清摄像头
- 戴尔|革命性CAMM DDR5内存正式发布:单条轻松128GB、还薄了57%
- 铁路正式工收入高吗?
- 婴儿囟门不跳动可正常
