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 读取所有未读的 data …

    更多

  • 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 的一方是无感知的, …

    更多

  • 字节开源 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 错误信息只会报告出最基本的错误,而不带有任何上下文。 比如含有如下结构关系 structA{1:requiredBb,}structB{2:requiredCc,}structC{3:requiredstringa,}在对结构C的字段a进行 Decode 如果发生错误。在之前的版本中错误信息只会报告针对出a字段 …

    更多

  • 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 …

    更多