Posts in 2023
-
Hertz 支持 QUIC & HTTP/3
Wednesday, August 02, 2023 in 新闻
概述 根据 Hertz 的分层设计原则将 QUIC 和 HTTP3 的实现集成到框架中来,对外提供灵活的多协议支持,对内保持足够灵活的扩展性和清晰的架构。 要从头实现一个完整的 QUIC 协议涉及到的工作量比较大且投入产出比相对较低,目前采取更合理的方式:首先定义标准网络传输层接口,之后将开源社区主流的一个或多个成熟的 QUIC 协议实现经过简单的适配和封装通过模块化的方式接入到 Hertz 中来,同时也保留未来独立实现 QUIC 协议的空间。类似目前的网络传输层架构。HTTP/3 同理。 明确 …
-
字节开源 Monoio :基于 io-uring 的高性能 Rust Runtime
Monday, April 17, 2023 in 新闻
概述 尽管 Tokio 目前已经是 Rust 异步运行时的事实标准,但要实现极致性能的网络中间件还有一定距离。为了这个目标,CloudWeGo Rust Team 探索基于 io-uring 为 Rust 提供异步支持,并在此基础上研发通用网关。 本文包括以下内容: 介绍 Rust 异步机制; Monoio 的一些设计精要; Runtime 对比选型与应用。 Rust 异步机制 借助 Rustc 和 llvm,Rust 可以生成足够高效且安全的机器码。 …
-
字节跳动开源 Shmipc:基于共享内存的高性能 IPC
Tuesday, April 04, 2023 in 新闻
简介 Shmipc 是字节跳动服务框架团队研发的高性能进程间通讯库,它基于共享内存构建,具有零拷贝的特点,同时它引入的同步机制具有批量收割 IO 的能力,相对于其他进程间通讯方式能明显提升性能。 在字节内部,Shmipc 应用于 Service Mesh 场景下,mesh proxy 进程与业务逻辑进程、与通用 sidecar 进程的通讯, 在大包场景和 IO 密集型场景能够取得了显著的性能收益。 开源社区关于这方面的资料不多,Shmipc 的开源希望能为社区贡献一份力量,提供一份参考。本文主要 …
-
HTTP 框架 Hertz 实践入门:性能测试指南
Friday, February 24, 2023 in 新闻
背景 2021 年 9 月 8 日,字节跳动宣布正式开源 CloudWeGo。CloudWeGo 是一套字节跳动内部微服务中间件集合,具备高性能、强扩展性和稳定性的特点,专注于解决微服务通信与治理的难题,满足不同业务在不同场景的诉求。 2022 年 6 月 21 日,Hertz 正式开源。日前,CloudWeGo 团队正式开源字节跳动最大的 HTTP 框架 Hertz。Hertz 自发布以来,得到了大量用户的关注,累计收获了 3K+ star。有很多用户自己进行了测试,感谢大家对我们的关注和支 …
Posts in 2022
-
Kitex Proxyless 之流量路由:配合 Istio 与 OpenTelemetry 实现全链路泳道
Tuesday, November 08, 2022 in 新闻
导语:Kitex Proxyless 是 Kitex 服务能够不借助 envoy sidecar 直接与 istiod 交互,基于 xDS 协议动态获取控制面下发的服务治理规则,并转换为 Kitex 对应规则来实现一些服务治理功能,如流量路由。基于 Kitex Proxyless,能够实现 Kitex 无需代理就可以被 ServiceMesh 统一管理,进而实现多种部署模式下的治理规则 Spec、治理控制面、治理下发协议、异构数据治理能力的统一。本文在 biz-demo 中使用 Kitex …
-
助力字节降本增效,大规模企业级 HTTP 框架 Hertz 设计实践
Tuesday, September 27, 2022 in 新闻
字节跳动内部 Go HTTP 框架的变迁 在正式开始介绍第一部分的内容之前,先展示一组关键词。2020 年初 Hertz 立项,2020 年 10 月,Hertz 发布第一个可用版本 。 2022 年 6 月,Hertz 正式开源。 截至目前,Hertz 在字节内部已经支撑超过 1.4 万个业务服务 , 日峰值 QPS 超过 5000 万 。 Hertz 不仅支持业务服务,同时还会横向支持字节内部的各种基础组件,包括但不限于字节跳动服务网格控制面、公司级别压测平台以及 FaaS,还包括各种业务网 …
-
高性能 RPC 框架 CloudWeGo-Kitex 内外统一的开源实践
Tuesday, September 20, 2022 in 新闻
由内至外 - 开源过渡 很多同学可能刚刚了解 CloudWeGo,先介绍一下 CloudWeGo 和 Kitex 的关系。 CloudWeGo 和 Kitex Kitex 是 CloudWeGo 开源的第一个微服务框架,它是一个 支持多协议的 Golang RPC 框架 ,从网络库、序列化库到框架的实现基本完全自研的。 特别地,Kitex 对 gRPC 协议的支持使用了 gRPC 官方的源码,但是我们对 gRPC 的实现做了 深度且定制的优化 ,所以 Kitex 支持的 gRPC …
-
开源社区的长期主义与新变化 — CloudWeGo 开源社区实践
Tuesday, September 13, 2022 in 新闻
概述 CloudWeGo 开源一周年以来收获了超过 1w 的 star 数,这一年 CloudWeGo 从项目的数量、性能的提升、社区的活跃、生态的拓展等各个方面都有一些整体的变化。 同时,通过一周年的开源,我们收获了非常多的开源社区用户,这些用户在社区里也提供了很多项目的使用反馈。基于这些反馈,我们发现随着技术发展和用户业务的不停迭代,用户需求也在发生着变化。 因此我们梳理了新一代关于云原生微服务用户的画像,作为指导我们社区持续演进的重要参考。 CloudWeGo …
-
选择 Go 还是 Rust?CloudWeGo-Volo 基于 Rust 语言的探索实践
Tuesday, September 06, 2022 in 新闻
CloudWeGo 选择 Rust 语言进行探索的原因 CloudWeGo 正式官宣新一代 Rust RPC 框架 Volo 开源!CloudWeGo 为什么会选择 Rust 这门语言进行探索呢?本文首先介绍一下其中的原因。 Go 的代价 深度优化困难 Volo 早期的团队成员来自于 Kitex 项目(CloudWeGo 开源的 Golang 微服务 RPC 框架)。当时我们投入了大量的时间和精力优化 Kitex 以及其他相关基础库的性能,最终却发现实现 Go 的深度优化有些困难。 我们仅仅 …
-
国内首个基于 Rust 语言的 RPC 框架 — Volo 正式开源!
Tuesday, August 30, 2022 in 新闻
Volo 是字节跳动服务框架团队研发的轻量级、高性能、 可扩展性强、易用性好的 Rust RPC 框架,使用了 Rust 最新的 GAT 和 TAIT 特性。 在字节内部,Volo 已经落地多个业务和基础组件,并且取得了超预期的性能收益(与 Go 版本对比,不那么公平)。 Volo 与其它 CloudWeGo 开源项目一样,坚持内外维护一套代码,为开源使用提供了强有力的保障。同时,我们观察到 Rust 开源社区在 RPC 框架这块还比较薄弱, Volo 的开源希望能为社区的完善贡献一份力量,同时 …