云原生微服务框架,内置大量工程实践

大家好,又见面了,我是 GitHub 精选君!

背景介绍

随着云计算和微服务架构的兴起,开发者面临着设计和实现可靠、可伸缩且易于管理的服务的挑战。微服务架构使得开发者可以将复杂应用拆分成小型、独立且易于维护的组件,但这也带来了服务稳定性、高并发处理、服务发现、负载均衡等诸多技术挑战。此外,要实现快速开发并确保代码质量,开发者还需投入大量时间编写胶水代码,处理诸如请求验证、超时控制和错误处理等问题。

今天要给大家推荐一个 GitHub 开源项目 go-zero,该项目在 GitHub 有超过 29.3k Star。

一句话介绍该项目:A cloud-native Go microservices framework with cli tool for productivity.

项目介绍

go-zero 是一个云原生的 Go 微服务框架,内置了大量的工程实践,旨在确保忙碌服务的稳定性。go-zero 的设计考虑了高并发场景下的稳定性和高可用性,同时提供了简单的 API 描述语法和代码生成工具 goctl,使得开发者可以轻松生成 Go、iOS、Android 等多种语言的代码,大幅提升开发效率。

go-zero 框架集成了服务发现、负载均衡、链式超时控制、并发控制、自适应熔断和负载削减等众多微服务管理和并发工具包,帮助开发者轻松应对高并发问题,无需繁琐配置即可提升服务的稳定性和性能。

如何使用

首先,使用以下命令安装 go-zero

go get -u github.com/zeromicro/go-zero

安装 goctl 工具:

go install github.com/zeromicro/go-zero/tools/goctl@latest

创建 API 文件(例如,greet.api):

type (
  Request {
    Name string `path:"name,options=[you,me]"`
  }

  Response {
    Message string `json:"message"`
  }
)

service greet-api {
  @handler GreetHandler
  get /greet/from/:name(Request) returns (Response)
}

然后,通过以下命令生成 Go 服务端代码:

goctl api go -api greet.api -dir greet

该命令将生成对应的服务代码,并支持立即运行。

项目推介

go-zero 已经在服务数以千万计的用户多年,它的稳定性和高性能已经得到了广泛验证和认可。

不仅如此,作为一个开源项目,go-zero 拥有活跃的开发社区,定期更新和改进,确保了框架的先进性和可靠性。此外,go-zero 还被列入 CNCF(云原生计算基金会)技术景观,体现了其技术影响力和行业认可度。

以下是该项目 Star 趋势图(代表项目的活跃程度):

更多项目详情请查看如下链接。

开源项目地址:https://github.com/zeromicro/go-zero

开源项目作者:zeromicro

以下是参与项目建设的所有成员:

关注我们,一起探索有意思的开源项目。


更多精彩请扫码关注如下公众号。

Written on August 30, 2024