Posts in 2023
Hertz 支持 QUIC & HTTP/3
Wednesday, August 02, 2023 in 新闻
项目:
概述 根据 Hertz 的分层设计原则将 QUIC 和 HTTP3 的实现集成到框架中来,对外提供灵活的多协议支持,对内保持足够灵活的扩展性和清晰的架构。 要从头实现一个完整的 QUIC 协议涉及到的工作量比较大且投入产出比相对较低,目前采取更合理的方式:首先定义标准网络传输层接口,之后将开源社区主流的一个或多个成熟的 QUIC 协议实现经过简单的适配和封装通过模块化的方式接入到 Hertz 中来,同时也保留未来独立实现 QUIC 协议的空间。类似目前的网络传输层架构。HTTP/3 同理。 明确 …
Release v0.6.1
Monday, June 19, 2023 in Kitex
项目:
详细变更 Hotfix: [#988] hotfix(code_gen): 修复slim模板代码生成失败问题
Release v0.6.0
Wednesday, June 14, 2023 in Kitex
项目:
重要变更介绍 功能 1. GRPC 元信息传递 client 默认将 header 设置到 ctx,外部方法可利用 GetHeaderMetadataFromCtx 获取元信息。可用于 transmeta 内获取元信息并设置到 rpcinfo 中,或在中间件内获取 header 信息。 2. Kitex 配置模块重构 增加重试、熔断、超时、限流的 config item,支持 configmanager 中间件定义的接口,用于支持与外部配置中心的扩展集成。 3. Kitex - …
Release v0.4.0
Wednesday, June 14, 2023 in Netpoll
项目:
Feature: [#249] feat: 添加 Detach 函数来支持从连接的 poller 中删除连接 Optimize: [#250] optimize: 优化 WriteDirect 实现,避免 remainLen 为 0 时 panic 和重复创建冗余的 LinkBufferNode. Bugfix: [#256] fix: 调用 openPoll 失败时关闭已经创建的 poll [#251] fix: err to e0 [#226] fix: 在关闭连接前 poller 读取所有 …
Release v0.5.0
Friday, June 02, 2023 in Volo
项目:
Volo 0.5.0 版本中,除了常规 bugfix 之外,还有一些新的 feature 引入。 Pilota-build compile 接口变动 如果有需要自己编译 idl 的用户,在这个版本中需要适配一下新的compile接口,参数改动很简单,如下: xxx.compile( &["idl/collector.proto"], pilota_build::Output::File(out_dir), ); 只需要在原先的out_dir上加一 …
Release v0.5.3
Friday, April 21, 2023 in Kitex
项目:
重要变更介绍 功能 异常重试:添加配置,支持不对超时错误进行重试,用于请求非幂等的场景。 代码生成工具:支持 windows 环境使用。 超时错误类型拆分:支持细粒度的超时错误类型,将 ErrRPCTimeout 细分为三个错误类型:超时、业务cancel、业务timeout。 Thrift FastCodec:支持 unknown fields。 unknown fields 使用背景:在 thrift 中,IDL 内增加字段对未更新 IDL 的一方是无感知的,必须更新 IDL 与生成代码以获 …
字节开源 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 的开源希望能为社区贡献一份力量,提供一份参考。本文主要 …
Release v0.4.1
Monday, March 20, 2023 in Volo
项目:
Volo 0.4.1 版本中,除了常规 bugfix 之外,还有一些新的 feature 引入。 更为详细的 Thrift Decode 错误信息 之前版本的 Thrift Decode 错误信息只会报告出最基本的错误,而不带有任何上下文。 比如含有如下结构关系 struct A { 1: required B b, } struct B { 2: required C c, } struct C { 3: required string a, } 在对结构C的字段a进行 Decode 如果发生 …
Release v0.5.0
Wednesday, March 08, 2023 in Kitex
项目:
重要变更介绍 功能 1. Fallback 功能: 支持 Client 侧的 Fallback 功能 业务在 RPC 请求失败后通常会有一些降级措施保证有效返回(比如在请求超时、熔断后,构造默认返回),Kitex 的 Fallback 支持对所有异常请求进行处理。 同时,因为业务异常通常会通过 BaseResp 字段返回,所以也支持对 Resp 进行处理。详见 Fallback。 2. Kitex - gRPC:Client 增加 TLS …