go语言有微服务框架,例如:1、Istio,是一个开源的微服务管理、保护和监控框架;2、Go-kit,是一个Go语言的分布式开发包,用于开发微服务;3、Go-zero,是一个集成了各种工程实践的web和rpc框架;4、Go-micro,是一个专注于简化分布式系统开发的微服务生态系统;5、Kratos;6、CloudWeGo-Kitex;7、Goa;8、Dubbo-go等等。
本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。
微服务框架是将某个应用程序开发划分为对许多小型服务独立的进行业务开发,这些服务一般围绕业务规则进行构建,可以用不同的语言开发,使用不同的数据存储,最终使得每个服务运行在自己的行程中。并且它们之间采用轻量级通信机制进行通信。
那么有基于go语言的微服务框架吗?答案是:有!下面就来分享一些Go语言开发的微服务框架。
1.Istio(31.7K)
项目简介:Istio是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。使用istio可以很简单的创建具有负载均衡、服务间认证、监控等功能的服务网络,而不需要对服务的代码进行任何修改。
仓库地址:https://github.com/istio/istiohttps://github.com/istio/istio
官方文档地址:https://istio.io/latest/docs/https://istio.io/latest/docs/
2.Go-kit(24.1K)
项目简介:Go-kit 是一个 Go 语言的分布式开发包,用于开发微服务。
仓库地址:https://github.com/go-kit/kit/https://github.com/go-kit/kit/
官方文档地址:https://gokit.io/
3.Go-zero(24.1K)
项目简介:go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。
仓库地址:https://github.com/tal-tech/go-zerohttps://github.com/tal-tech/go-zero
官方文档地址:https://go-zero.dev/cn/docs/introduction
4.Go-micro(19.6K)
项目简介:Micro是一个专注于简化分布式系统开发的微服务生态系统。可插拔的插件化设计,提供强大的可插拔的架构来保证基础组件可以被灵活替换。
仓库地址:https://github.com/asim/go-micro
官方文档地址:https://go-micro.dev/
中文文档:介绍 · go-micro 微服务开发中文手册 · 看云Micro是一个微服务生态系统。目标是简化分布式系统开发。技术正在迅速发展。现在云计算能够给我们几乎是无限的scale能力,但是采用现有工具来使用scale能力仍然是很困难的。Micro试图去解决这个问题,开发人员首先关注。Micro的核心是简单易用,任何人都可以轻松开始编写微服务。随着您扩展到数百种服务,Micro将提供管理微服务环境所需的基本工具https://www.kancloud.cn/linimbus/go-micro/529015
5.Kratos(19.2K)
项目简介:哔哩哔哩(B站)开源的一套Go微服务框架,包含大量微服务相关框架及工具。
仓库地址:https://github.com/cloudwego/kitex
官方文档地址:https://go-kratos.dev/docs/
6.CloudWeGo-Kitex(5.2K)
项目简介:字节跳动,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/docs/overview/
7.Goa(4.9K)
项目简介:Goa 是一款用 Go 用于构建微服务的框架,采用独特的设计优先的方法
仓库地址:https://github.com/goadesign/goa
官方文档地址:https://goa.design/
8.Dubbo-go(4.2K)
项目简介:阿里,由Apache 软件基金会官方发布Go 语言加入 Dubbo 生态,架构是基于dubbo的extension模块和分层的代码设计,主要解决 Go 项目与 Java & Dubbo 项目的互通问题,同时也为 Go 项目提供了一种 RPC 与微服务
仓库地址:https://github.com/apache/dubbo-go
官方文档地址:https://dubbogo.github.io/dubbo-go-website/zh-cn/
9.Jupiter(3.9K)
项目简介:斗鱼开源的一套微服务治理框架,提供丰富的后台功能,管理应用的资源、配置,应用的性能、配置等可视化。
仓库地址:https://github.com/douyu/jupiter
官方文档地址:http://jupiter.douyu.com/
10.Tars-go(3.1K)
项目简介:腾讯,Tarsgo是基于Golang编程语言使用Tars协议的高性能RPC框架
仓库地址:https://github.com/TarsCloud/TarsGo
官方文档地址:https://tarscloud.github.io/TarsDocs/SUMMARY.html#TarsGo
附:北极星-polaris-go
北极星是腾讯开源的服务发现和治理中心,致力于解决分布式或者微服务架构中的服务可见、故障容错、流量控制和安全问题。
仓库地址:https://github.com/polarismesh/polaris
官方文档地址:https://polarismesh.cn/#/
11.Jaeger
Jaeger是Uber的分布式跟踪系统 ,基于google dapper的原理构建, 以Cassandra作为存储层。
12.fabio
13.gizmo
gizmo是纽约时报开源的go微服务工具,提供如下特性:标准化配置和日志;可配置策略的状态监测端点;用于管理pprof端点和日志级别的配置;结构化日志,提供基本请求信息;端点的有用度量;优雅的停止服务; 定义期待和词汇的基本接口。
14.kite
kite是一个基于go语言的微服务框架, Kite是Koding公司内部的一个框架, 该框架提供服务发现,多种认证功能,服务端通过RPC进行通信,同时还提供了websocket的js库,方便浏览器于服务器间进行通信。
15.hystrix-go
hystrix-go是用来隔离远程系统调用,第三方库调用,服务调用,提供熔断机制,避免雪崩效应的库, Hystrix的go版本。注Hystrixs是Netflix开源的一个java库。
16.Gateway
Gateway是一个使用go实现的基于HTTP的API网关。特性:API聚合; 流控; 熔断; 负载均衡; 健康检查; 监控; 消息路由; 后端管理WebUI。能做什么:规划更友好的URL给调用者。聚合多个API的结果返回给API调用者,利于移动端,后端可以实现原子接口。保护后端API服务不会被突发异常流量压垮。提供熔断机制,使得后端API Server具备自我恢复能力。借助消息路由能力,实现灰度发布,AB测试。
17.rainbond
云帮是一款以应用为中心的开源PaaS,深度整合Kubernetes的容器管理和Service Mesh微服务架构最佳实践,满足支撑业务高速发展所需的敏捷开发、高效运维和精益管理需求。
18.appdash
appdash是一款go版本的分布式应用跟踪系统, 基于google dapper的原理构建。
19.Hprose
Hprose是高性能远程对象服务引擎的缩写——微服务首选引擎。它是一个先进的轻量级的跨语言跨平台面向对象的高性能远程动态通讯中间件。它不仅简单易用,而且功能强大。你只需要稍许的时间去学习,就能用它轻松构建跨语言跨平台的分布式应用系统。
更多编程相关知识,请访问:编程视频!!