6-Go微服务框架介绍
golang 常见微服务框架有 按starts数排列
1 go-kit
go-kit是一个分布式的开发工具集,在大型的组织(业务)中可以用来构建微服务,其解决了分布式系统中大多数常见问题,因此,使用者可以将精力集中在业务逻辑上
go-kit不是一个框架,他只是一个工具集,他里面有用来帮助我们实现微服务的一些工具包
地址:https://github.com/go-kit/kit
star数:23k
2 go-micro
Go Micro是一个插件化的基础框架,基于此可以构建微服务,Micro的设计哲学是可插拔的插件化架构
在架构之外,它默认实现了consul作为服务发现,通过http进行通信,通过protobuf和json进行编码
地址:https://github.com/asim/go-micro
star数:18.2k
3 go-kratos
哔哩哔哩(B站)开源的一套Go微服务框架
Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关功能及工具
协议通信以 HTTP/gRPC 为基础,通过 Protobuf 进行定义
名字来源于:《战神》游戏以希腊神话为背景,讲述奎托斯(Kratos)由凡人成为战神并展开弑神屠杀的冒险经历。
地址:https://github.com/go-kratos/kratos/
star数:17.7k
4 go-zero
go-zero 是一个集成了各种工程实践的 web 和 rpc框架。
地址:https://github.com/zeromicro/go-zero
star数:17.4k
5 Kitex
Kitex[kaɪt'eks] 字节跳动内部的 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点,在字节内部已广泛使用。如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望定制扩展融入自己的治理体系,Kitex 会是一个不错的选择
字节跳动,KiteX 自 2020.04 正式发布以来,公司内部服务数量 8k+,QPS 过亿。KiteX 是字节跳动框架组研发的下一代高性能、强可扩展性的 Go RPC 框架。除具备丰富的服务治理特性外,相比其他框架还有以下特点:集成了自研的网络库 Netpoll;支持多消息协议(Thrift、Protobuf)和多交互方式(Ping-Pong、Oneway、 Streaming);提供了更加灵活可扩展的代码生成器
地址:https://github.com/cloudwego/kitex
文档:https://www.cloudwego.io/zh/
star数:4.1k
6 Dubbo-go
阿里,由Apache 软件基金会官方发布Go 语言加入 Dubbo 生态,架构是基于dubbo的extension模块和分层的代码设计,主要解决 Go 项目与 Java & Dubbo 项目的互通问题,同时也为 Go 项目提供了一种 RPC 与微服务
地址:https://github.com/apache/dubbo-go
文档:https://github.com/apache/dubbo-go/blob/master/README_CN.md
star数:4k
7 go-Jupiter
Jupiter 是斗鱼开源的,面向服务治理的Golang微服务框架,以开发效率和治理效率为核心目标,从统一开发规范、完善监控埋点、降低开发难度等多个维度来帮助Gopher开发高性能、高可靠性的微服务框架
地址:https://github.com/douyu/jupiter
star数:3.7k
8 Tars-go
腾讯,Tarsgo是基于Golang编程语言使用Tars协议的高性能RPC框架
地址:https://github.com/TarsCloud/TarsGo
文档:https://doc.tarsyun.com/#/hello-world/tarsgo.md
star数:3k
9 北极星
北极星是腾讯开源的服务发现和治理中心,致力于解决分布式或者微服务架构中的服务可见、故障容错、流量控制和安全问题。
地址:https://github.com/polarismesh/polaris
star数:1.1k