项目简介:Istio是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。使用istio可以很简单的创建具有负载均衡、服务间认证、监控等功能的服务网络,而不需要对服务的代码进行任何修改。
所属国家:美国
开源时间:2017年
维护状态:正常
仓库地址: https://github.com/istio/istio(31.9k stars)
官方文档地址:
英文:https://istio.io/latest
中文:https://istio.io/latest/zh
参考1:为什么使用 Istio?
HTTP
、gRPC
、WebSocket
和 TCP
流量自动负载均衡。集群内(包括集群的入口和出口)所有流量的自动化度量、日志记录和追踪
。参考1:Go-kit介绍及构建微服务
参考2:【Golang】微服务实现工具 – go-kit 易懂
参考3:go-kit 入门
参考4:简单入门Go Kit微服务框架
项目简介:Go-kit
并不是一个微服务框架,而是一套微服务工具集,我们可以用工具Go-kit为 Go 创建微服务,包含包和接口,有点类似于JAVA Spring Boot,但是没那么强大。可以利用Go-kit提供的API和规范可以创建健壮的,可维护性高的微服务体系,它提供了用于实现系统监控和弹性模式组件的库,例如日志记录、跟踪、限流和熔断等,这些库可以协助开发人员提高微服务架构的性能和稳定性。
所属国家:不详
开源时间:2016年
维护状态:正常。
仓库地址: https://github.com/go-kit/kit(24.2k stars)
官方文档地址: https://gokit.io
项目简介:Kratos
一套轻量级 Go 微服务框架,包含大量微服务相关功能及工具。由bilibili
开源出来,在bilibili
站大量使用。
所属国家:中国
开源时间:2019年6月11号
维护状态:正常。
仓库地址: https://github.com/go-kratos/kratos(19.2k stars)
官方文档地址: https://go-kratos.dev/docs
遵循 OpenTelemetry 规范定义,以实现微服务链路追踪;
项目简介:是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。开源作者万俊峰,七牛云技术副总裁
。
所属国家:中国
开源时间:2020年8月11号
维护状态:正常。
仓库地址: https://github.com/tal-tech/go-zero(21.4k stars)
官方文档地址:https://go-zero.dev/cn
高性能
易扩展
低门槛
基于 Go 语言
优势特性
自研微服务框架
简单易用原则
项目简介:Micro是一个专注于简化分布式系统开发的微服务生态系统。可插拔的插件化设计,提供强大的可插拔的架构来保证基础组件可以被灵活替换。虽然 go-micro 2.0 依然可以使用,但已经不维护。
所属国家:美国
开源时间:2020年8月11号
维护状态:正常。
仓库地址: https://github.com/go-micro/go-micro(19.7k stars)
官方文档地址: https://micro.dev
Nitro[3]
。现在它是一个快速的分布式应用程序开发框架。注意:这些框架的星标数均小于10K,所以不在重点考虑范围之内。
项目简介:fabio 是 ebay 团队用 golang 开发的一个快速、简单零配置能够让 consul 部署的应用快速支持 http(s) 的负载均衡路由器。
仓库地址: https://github.com/fabiolb/fabio( 7.1k stars)
官方文档地址: https://fabiolb.net
项目简介:Goa 是一款用 Go 用于构建微服务的框架,采用独特的设计优先的方法
仓库地址: https://github.com/goadesign/goa(4.9k stars)
官方文档地址: https://goa.design/
项目简介:阿里系,由Apache 软件基金会官方发布Go 语言加入 Dubbo 生态,架构是基于dubbo的extension模块和分层的代码设计,主要解决 Go 项目与 Java & Dubbo 项目的互通问题,同时也为 Go 项目提供了一种 RPC 与微服务
仓库地址: https://github.com/apache/dubbo-go(4.3k stars)
官方文档地址: https://dubbogo.github.io/dubbo-go-website/zh-cn
项目简介:gizmo是纽约时报开源的go微服务工具,提供如下特性:标准化配置和日志;可配置策略的状态监测端点;用于管理 pprof 端点和日志级别的配置;结构化日志,提供基本请求信息;端点的有用度量;优雅的停止服务; 定义期待和词汇的基本接口。
仓库地址: https://github.com/nytimes/gizmo(3.7k stars)
项目简介:斗鱼开源的一套微服务治理框架,提供丰富的后台功能,管理应用的资源、配置,应用的性能、配置等可视化。
仓库地址: https://github.com/douyu/jupiter
官方文档地址: http://jupiter.douyu.com/(3.9k stars)
项目简介:腾讯系,Tarsgo是基于Golang编程语言使用Tars协议的高性能RPC框架
仓库地址: https://github.com/TarsCloud/TarsGo(3.1k stars)
官方文档地址: https://tarscloud.github.io/TarsDocs/SUMMARY.html#TarsGo
综合1的考虑因素和2中各框架的特性,初步确定 Kratos(奎托斯)
、Go-zero
这两个框架。
使用该框架的企业
Kratos:未知
go-zero:47
星标数
Kratos:19.3k
go-zero:21.5k
生态丰富性
Kratos:14
go-zero:36
与ClickHouse关联程度
Kratos:低。
go-zero:高,最近该团队又开源了一个 https://github.com/tal-tech/cds 基于go-zero
构建的ClickHouse
的大数据数据同步、存储、计算系统。注意 cds
最新版本的时间是2022年5、6月份。
后续开发难度
Kratos:未知。
go-zero:对于新手非常友好, 有非常强大的 goctl
脚手架工具,包括一键生成dockerfile
,k8s
的yaml
文件,大大提高了工作效率,节省 golang
开发者时间,有更多的时间专注于业务。通过阅读 go-zero
源码,获益匪浅。
综合以上相关因素,最终决定使用Go-zero
框架。
代码地址:
https://github.com/feihua/zero-admin
Ant Design Pro前端版本:https://github.com/feihua/go-zero-admin-ui
Element Admin UI前端版本:https://github.com/feihua/zero-vue-admin
文档情况:
无
功能完整性:
已有:待定
星标数:
316
开源时间
2020年11月20号 — 2022年6月29号
维护状态
正常
登录注册
、菜单管理、角色管理、角色权限
、用户管理、操作日志
、服务注册发现
、配置中心
、字典功能、三方登录管理
、全面支持 K8s
、服务监控
、日志收集
、JWT黑名单
、定时任务
、消息队列
、Ent
【17个】通过第四部分对各代码平台的比较,并结合业务需求,最终决定使用simple-admin-core
。