Posts in 2021

  • RPC 框架 Kitex 实践入门:性能测试指南

    Wednesday, November 24, 2021 in 新闻

    日前,字节跳动服务框架团队正式开源 CloudWeGo ,在抖音、今日头条均有深度应用的 Golang 微服务 RPC 框架 Kitex 也包含在其中。 本文旨在分享开发者在压测 Kitex 时需要了解的场景和技术问题。这些建议有助于用户更好地结合真实 RPC 场景对 Kitex 进行调优,使之更贴合业务需要、发挥最佳性能。用户也可以参考官方提供的压测项目 kitex-benchmark 了解更多细节。 微服务场景的特点 Kitex 诞生于字节跳动大规模微服务架构实践,面向的场景自然是微服务场 …

    更多

  • Release v0.0.8

    Friday, November 05, 2021 in Kitex

    优化 使用分片 ring 减少连接池的锁开销。 装填 TTHeader 中的上游服务信息到 rpcinfo 中,用于在 decode 出错时输出来源信息。 Unlink uds 调整至 CreateListener 中。 event.go 和 ring_single.go 中的 Mutex 改为 RWMutex。 Bug 修复 修复 netpollmux shard index 溢出的问题。 移除 WithCircuitBreaker option 里对参数的反射,避免 data-race。 在 …

    更多

  • Release v0.0.5

    Sunday, September 26, 2021 in Kitex

    功能: 增加默认的 ErrorHandler 封装 Error(用户指定会被覆盖)。 metainfo 支持反向传递。 支持了 JSON 泛化调用,使用指南可参考:Kitex 泛化调用使用指南。 优化: 多路复用场景下使用了新的 netpoll API 来改善吞吐和延迟。 多路复用场景下支持 metainfo 的正向和反向传递。 Client 会在需要的时候默认使用 RPCTimeout 中间件。 连接池配置增加全局空闲连接和单实例空闲连接合法性校验。 当更新 QPS 最大限制时会重置计数器。 …

    更多

  • 字节跳动 Go RPC 框架 Kitex 性能优化实践

    Thursday, September 23, 2021 in 新闻

    前言 Kitex 是字节跳动框架组研发的下一代高性能、强可扩展性的 Go RPC 框架。除具备丰富的服务治理特性外,相比其他框架还有以下特点: 集成了自研的网络库 Netpoll;支持多消息协议(Thrift、Protobuf)和多交互方式(Ping-Pong、Oneway、 Streaming);提供了更加灵活可扩展的代码生成器。 目前公司内主要业务线都已经大范围使用 Kitex,据统计当前接入服务数量多达 8k。Kitex 推出后,我们一直在不断地优化性能,本文将分享我们在 Netpoll …

    更多

  • Release v0.0.4

    Thursday, September 16, 2021 in Netpoll

    优化: 默认支持 TCP_NODELAY 支持在一个循环中读写 返回 nocopy rw 的真实错误 更改了循环策略的默认数量 重新定义了 EventLoop.Serve arg: Listener -> net.Listener 在 DisableGopool 中增加了 API 删除了读锁 连接 Flush API 调整为阻塞的 Bug 修复: 设置剩余待读取大小。

    更多

  • 字节跳动开源内部微服务中间件 CloudWeGo

    Tuesday, September 07, 2021 in 新闻

    开源背景 CloudWeGo 是一套由字节跳动开源的、以 Go 语言为核心的、可快速构建企业级云原生架构的中间件集合,专注于微服务通信与治理,具备高性能、可扩展、高可靠的特点。 字节跳动内部使用 Golang 作为主要的业务开发语言,我们支持着数万个 Golang 微服务的可靠通信,经过数量众多的微服务和海量流量的验证,我们已经有了较为成熟的微服务最佳实践,于是考虑将内部的实践开源出去丰富社区生态。 但微服务相关的项目较多,每个项目单独开源对外部用户并不友好,为了更好地让大家聚焦于微服务, …

    更多

  • Release v0.0.4

    Thursday, August 26, 2021 in Kitex

    优化: transMetaHandler 在自定义 boundHandlers 之前执行,保证自定义 boundHandlers 可以拿到 RPCInfo 信息。 TransError 暴露封装 error 的 typeID 用于支持自定义 Error 回传错误码。 Bug 修复: 复用 RPCInfo 不对 stats level 重置, 以修复在使用 netpollmux 时 metric 丢失问题。 清理不存在节点的连接池。 Streaming 中增加 Netpoll EOF 错误判断来清 …

    更多

  • Release v0.0.3

    Sunday, August 01, 2021 in Kitex

    Bug 修复: 防止连接池被覆盖。

    更多

  • Release v0.0.2

    Friday, July 30, 2021 in Kitex

    优化: Kitex 在没有 tracer 时关闭 stats 分阶段耗时采集,避免无 Trace 时额外的性能消耗。 Kitex client 默认使用连接池。 Bug 修复: 修复了一个 lbcache 中 nil-pointer 的错误。 修复了一个 retry 重试(Backup Request)中的 data race 问题。 工具: Kitex 工具去掉默认生成的配置文件。 Kitex 工具现在使用最新的 thriftgo API 以避免老版 API 在生成代码时的几个边角案例。 …

    更多

  • Release v0.0.1

    Monday, July 12, 2021 in Kitex

    Kitex 项目初始化。

    更多