Kitex 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Kitex 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Kitex 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Google Go 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者
适用人群 未知
收录时间 2021-09-08

软件简介

Kitex[kaɪt'eks] 字节跳动内部的 Golang 微服务 RPC 框架,具有高性能强可扩展的特点,在字节内部已广泛使用。如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望定制扩展融入自己的治理体系,Kitex 会是一个不错的选择。

框架特点

  • 高性能

    使用自研的高性能网络库 Netpoll,性能相较 go net 具有显著优势。

  • 扩展性

    提供了较多的扩展接口以及默认扩展实现,使用者也可以根据需要自行定制扩展,具体见下面的框架扩展。

  • 多消息协议

    RPC 消息协议默认支持 ThriftKitex ProtobufgRPC。Thrift 支持 Buffered 和 Framed 二进制协议;Kitex Protobuf 是 Kitex 自定义的 Protobuf 消息协议,协议格式类似 Thrift;gRPC 是对 gRPC 消息协议的支持,可以与 gRPC 互通。除此之外,使用者也可以扩展自己的消息协议。

  • 多传输协议

    传输协议封装消息协议进行 RPC 互通,传输协议可以额外透传元信息,用于服务治理,Kitex 支持的传输协议有 TTHeaderHTTP2。TTHeader 可以和 Thrift、Kitex Protobuf 结合使用;HTTP2 目前主要是结合 gRPC 协议使用,后续也会支持 Thrift。

  • 多种消息类型

    支持 PingPongOneway双向 Streaming。其中 Oneway 目前只对 Thrift 协议支持,双向 Streaming 只对 gRPC 支持,后续会考虑支持 Thrift 的双向 Streaming。

  • 服务治理

    支持服务注册/发现、负载均衡、熔断、限流、重试、监控、链路跟踪、日志、诊断等服务治理模块,大部分均已提供默认扩展,使用者可选择集成。

  • 代码生成

    Kitex 内置代码生成工具,可支持生成 ThriftProtobuf 以及脚手架代码。

框架性能

测试环境

  • CPU: Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz, 4 cores
  • Memory: 8GB
  • OS: Debian 5.4.56.bsk.1-amd64 x86_64 GNU/Linux
  • Go: 1.15.4

并发表现 (Echo 1KB, 改变并发量)

QPS TP99 TP999

吞吐表现 (并发 100, 改变包大小)

QPS TP99 TP999

相关项目

  • Netpoll: 自研的高性能网络库,Kitex 默认集成的。
  • kitex-contrib:Kitex 的部分扩展库,使用者可以根据需求通过 Option 集成进 Kitex 中。
  • Example:Kitex 的使用示例。
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
2022/06/08 11:14

Kitex v0.3.2 发布,Golang 微服务 RPC 框架

Kitex[kaɪt'eks] 字节跳动内部的 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点,在字节内部已广泛使用。 框架特点 高性能 使用自研的高性能网络库 Netpoll,性能相较 go net 具有显著优势。 扩展性 提供了较多的扩展接口以及默认扩展实现,使用者也可以根据需要自行定制扩展,具体见下面的框架扩展。 多消息协议 RPC 消息协议默认支持 Thrift、Kitex Protobuf、gRPC。Thrift 支持 Buffered 和 Framed 二进制协议;Kit...

0
5
发表了资讯
2022/05/06 10:53

Kitex v0.3.0 版本发布

Feature [#366, #426 ] 功能(client): 客户端支持预热操作。 [#395 ] 功能(mux): 连接多路复用支持优雅关闭。 [#399 ] 功能(protobuf): 定义 fastpb protocol API 并在编解码模块对应支持。 Optimise [#402 ] 优化(connpool): 导出 pkg/remote/connpool 里的 getCommonReporter。 [#389 ] 优化(rpcinfo):填充由 defaultCodec 解码得到的 rpcinfo 中缺失的 Invocation().PackageName, Invocation().ServiceName and Config()....

0
2
发表了资讯
2022/04/01 10:37

Kitex v0.2.1 发布!

Bugfix 修复(generic):在泛化调用的时候检查 IDL 是否有循环依赖。 修复(tool):修复 protobuf CombineService 缺失 streaming 引用的问题。 修复(client):修复 oneway 请求的 sequence ID 没有被编码的问题以及降低 oneway 调用的丢包率。 修复(generic/tool):修复 CombineServices 可能存在多次加载同一个 service 问题。 Optimise 优化(diagnosis):lbcaches 是全局的,无需为每个 client 注册 ProbeFunc 用于诊断查询。 ...

0
2
发表了资讯
2022/01/04 17:11

Kitex v0.1.3 发布,新功能更加稳定可靠

Kitex 是一个 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点,在字节内部已广泛使用。如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望定制扩展融入自己的治理体系,Kitex 会是一个不错的选择。 Kitex v0.1.3 版本已经发布,此版本更新内容包括: 功能优化 JSON 泛化调用场景,向服务端传递 Base 信息,从而服务端可获取 Caller 等信息 Bugfix 修复 streaming 的 metric 上报(server侧)丢失 meth...

0
2
发表了资讯
2021/12/28 11:26

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

Kitex v0.1.0 版本已经发布,这是一个 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点,在字节内部已广泛使用。如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望定制扩展融入自己的治理体系,Kitex 会是一个不错的选择。 此版本更新内容包括: 功能 泛化调用 IDL 解析支持多 Service 暴露 SetSeqID 方法便于二进制泛化场景 server 侧使用 泛化 client 支持关闭,规避内存泄漏问题 日志 修改日志风格...

2
6
发表了资讯
2021/09/09 08:34

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

9 月 8 日,字节跳动正式宣布开源 CloudWeGo。这是一套以 Go 语言为核心、专注于微服务通信与治理的中间件集合,具有高性能、可扩展、高可靠的特点。 据介绍,作为项目维护方,字节跳动基础架构团队已推进项目以 CloudWeGo 开源库为主进行迭代,未来团队将坚持内外维护一套代码,统一迭代演进,并逐步分享更多内部微服务最佳实践。 项目地址:https://github.com/cloudwego 项目官网:www.cloudwego.io CloudWeGo 第一批开源了四...

10
25
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
35 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部