Kitex v0.1.0 版本发布,高性能 Go RPC 框架

栏目: 软件资讯 · 发布时间: 4年前

内容简介:Kitex v0.1.0 版本已经发布,这是一个 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点,在字节内部已广泛使用。如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望定制扩展融入自己的治...

Kitex v0.1.0 版本已经发布,这是一个 Golang 微服务 RPC 框架,具有高性能强可扩展的特点,在字节内部已广泛使用。如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望定制扩展融入自己的治理体系,Kitex 会是一个不错的选择。

此版本更新内容包括:

功能

泛化调用

  • IDL 解析支持多 Service
  • 暴露 SetSeqID 方法便于二进制泛化场景 server 侧使用
  • 泛化 client 支持关闭,规避内存泄漏问题

日志

  • 修改日志风格,使用 “key=value” 列出信息
  • 使用 klog 作为全局的日志输出工具
  • 使用全局的 default logger
  • 日志打印更多 context 信息,例如 logId,方便问题排查
  • go func 传入服务信息用于 recover panic 后输出关键信息方便问题排查

Option

  • 增加 NewThriftCodecDisableFastMode 方法,来关闭 FastWrite 和 FastRead
  • Kitex server 支持端口复用
  • 默认 RPC 超时设置为 0(在后续 PR 中,revert 了该变更)

Proxy

  • Proxy 增加 ContextHandler 接口用于传递初始化ctx给 mwbuilder
  • 注册 lbcache 的 Dump 给 diagnosis,用于问题诊断
  • 将 PRCConfig 传递给 proxy.Config

优化

  • 减少了对象的堆分配
  • 优化多路复用性能
  • 优化 grpc 编解码性能,通过 Release 时释放(Close) LinkBuffer
  • 在计算 backup request 的消耗(cost)时,区分 ErrRPCFinish
  • 多路复用分片队列逻辑移动至 netpoll/mux,并重命名分片字典
  • 优化Fast api中容器类型的长度编码逻辑

Bug 修复

  • 修复 server 端 WithErrorHandler 配置不生效问题
  • 调整 lbcache 中的 Balancer 初始化逻辑
  • 修复 TraceCtl 可能为 nil 的问题(仅影响单测)
  • 设置默认的 rpc timeout, 并支持设置 WithRPCTimeout(0) 来关闭超时中间件
  • 修复 default logger 使用错误的 call depth
  • 重命名 BackwardProxy 为 ReverseProxy
  • 修复 grpc 场景下的 panic
  • 修复 grpc 场景下的潜在风险(keepalive 超时导致 panic)
  • 修复 void 方法中的异常缺失
  • 修复实例变更时 dump 信息不正确问题。

文档

  • 修复失效的中文链接
  • 将全部 doc 移至官网 cloudwego.io

Netpoll API Change:

  • 适应 netpoll.Writer.Append 的 API 改动,返回值从 2个 变为 1个

依赖变化

  • github.com/cloudwego/netpoll: v0.0.4 -> v0.1.2

详情查看:https://www.cloudwego.io/zh/blog/2021/12/13/kitex-v0.1.0-%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Writing Apache Modules with Perl and C

Writing Apache Modules with Perl and C

Lincoln Stein、Doug MacEachern / O'Reilly Media, Inc. / 1999-03 / USD 39.95

Apache is the most popular Web server on the Internet because it is free, reliable, and extensible. The availability of the source code and the modular design of Apache makes it possible to extend Web......一起来看看 《Writing Apache Modules with Perl and C》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码