您的位置 首页 golang

一经开源就火了,字节跳动开源微服务中间件CloudWeGo

9 月 8 日,字节跳动正式宣布开源 CloudWeGo。这是一套以 Go 语言为核心、专注于微服务通信与治理的中间件集合,具有高性能、可扩展、高可靠的特点。

CloudWeGo 第一批开源了四个项目,以 RPC 框架 Kitex 和网络库 Netpoll 为主。值得注意的是,一经开源,Kitex就登上了Github热门榜单:

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

Kitex具有以下特性:

  • 高性能: 使用自研的高性能网络库 Netpoll,性能相较 go net 具有显著优势。
  • 扩展性: 提供了较多的扩展接口以及默认扩展实现,使用者也可以根据需要自行定制扩展,具体见下面的框架扩展。
  • 多消息协议: RPC 消息协议默认支持 Thrift、Kitex Protobuf、gRPC。Thrift 支持 Buffered 和 Framed 二进制协议;Kitex Protobuf 是 Kitex 自定义的 Protobuf 消息协议,协议格式类似 Thrift;gRPC 是对 gRPC 消息协议的支持,可以与 gRPC 互通。除此之外,使用者也可以扩展自己的消息协议。
  • 多传输协议: 传输协议封装消息协议进行 RPC 互通,传输协议可以额外透传元信息,用于服务治理,Kitex 支持的传输协议有 TTHeader、HTTP2。TTHeader 可以和 Thrift、Kitex Protobuf 结合使用;HTTP2 目前主要是结合 gRPC 协议使用,后续也会支持 Thrift。
  • 多种消息类型: 支持 PingPong、Oneway、双向 Streaming。其中 Oneway 目前只对 Thrift 协议支持,双向 Streaming 只对 gRPC 支持,后续会考虑支持 Thrift 的双向 Streaming。
  • 服务治理: 支持服务注册/发现、负载均衡、熔断、限流、重试、监控、链路跟踪、日志、诊断等服务治理模块,大部分均已提供默认扩展,使用者可选择集成。
  • 代码生成: Kitex 内置代码生成工具,可支持生成 Thrift、Protobuf 以及脚手架代码。

使用Kitex,你需要先准备Golang开发环境,在完成环境准备后,你还需要安装代码生成工具,首先,我们需要安装使用本示例所需要的命令行代码生成工具:

  • 确保 GOPATH 环境变量已经被正确地定义(例如 export GOPATH=~/go)并且将 $GOPATH/bin 添加到 PATH 环境变量之中(例如 export PATH=$GOPATH/bin:$PATH );请勿将 GOPATH 设置为当前用户没有读写权限的目录
  • 安装 kitex:go install github.com/cloudwego/kitex/tool/cmd/kitex@latest
  • 安装 thriftgo:go install github.com/cloudwego/thriftgo@latest
  • 安装成功后,执行 kitex –version 和 thriftgo –version 应该能够看到具体版本号的输出(版本号有差异,以 x.x.x 示例):

 $ kitex --version
vx.x.x

$ thriftgo --version
thriftgo x.x.x
  

接着你可以获取示例代码:

  • 获取示例代码
  • 你可以直接点击 此处 下载示例仓库
  • 也可以克隆该示例仓库到本地 git clone

除了Kitex,剩下还有三个开源项目,分别如下:

  • Netpoll 是字节跳动内部的 Golang 高性能、I/O 非阻塞的网络库,专注于 RPC 场景。
  • Thriftgo 是 Go 语言实现的 Thrift IDL 解析和代码生成器,支持完善的 Thrift IDL 语法和语义检查,相较 Apache Thrift 官方的 Golang 生成代码,Thriftgo 做了一些问题修复且支持插件机制,用户可根据需求自定义生成代码。
  • Netpoll-http2 基于 Golang 标准库 golang.org/x/net/http2 的源码替换 go net 为 Netpoll,目前用于 Kitex 对 gRPC 协议的支持,对 HTTP2 有需求的外部开发者也可以使用此库。

文章来源:智云一二三科技

文章标题:一经开源就火了,字节跳动开源微服务中间件CloudWeGo

文章地址:https://www.zhihuclub.com/97990.shtml

关于作者: 智云科技

热门文章

网站地图