真效率,简化微服务开发的编程框架
作者: GitHub黑板报 来源: GitHub黑板报
【公众号回复 “1024 ”,免费领取程序员赚钱实操经验】
大家好,我是章鱼猫!
背景介绍
在微服务开发过程中,我们常常遇到各类问题。例如,REST 默认的标准难以践行、在企业级规模上的挑战、数据库状态管理、错误管理等等。以往,我们需要手动进行配置、对各个部分进行维护和测试。但随着 Gofr 的出现,这一切都可以得到解决。
今天要给大家推荐一个 GitHub 开源项目 gofr-dev/gofr,该项目在 GitHub 有差不多 1000 Star,用一句话介绍该项目就是:“An opinionated Go framework for accelerated microservice development”。
项目介绍
Gofr 是一个有见地的 Go 微服务开发框架。虽然可以使用 Gofr 编写通用应用程序,但我们主要关注的是简化微服务的开发。我们将专注于在 Kubernetes 中部署,并渴望提供开箱即用的可观察性。这个项目已经被列入 CNCF Landscape (https://landscape.cncf.io/?selected=go-fr)。
Gofr 的主要优势和特点包括:
1、简单的 API 语法;
2、默认 REST 标准;
3、经过企业级规模的实战测试;
4、强大的配置管理;
5、使用迁移的数据库状态管理;
6、内置中间件以及支持自定义中间件;
7、错误管理;
8、内置的数据存储、文件系统、发布/订阅;
9、支持 gRPC;
10、链式超时控制;
11、支持静态文件服务器;
12、WebSocket 支持;
13、内置防洪控制;
14、内置跟踪、度量和日志。
如何使用
如果你已经有一个 go 项目支持 go mod,你可以通过调用 go get gofr.dev 来获取 gofr。如果你是一个新的 Go 项目从,你可以在一个空文件夹里初始化你的 go 模块,比如 go mod init test-service 。然后创建 main.go 文件,输入以下内容:
package main
import "gofr.dev/pkg/gofr"
func main() {
app := gofr.New()
app.GET("/", func(ctx *gofr.Context) (interface{}, error) {
return "Hello World!", nil
})
app.Start()
}
接着获取所有的依赖,例如 go get ./… 。然后启动服务器 go run main.go 。会在默认的 8000 端口上启动服务器。
项目推介
Gofr 的活跃开发和广泛应用都验证了其在微服务开发中的强大性能和实用性,尤其其已经得到 CNCF 的引用。
以下是该项目 Star 趋势图(代表项目的活跃程度):
更多项目详情请查看如下链接。
开源项目地址:https://github.com/gofr-dev/gofr
开源项目作者:gofr-dev
最近,章鱼猫建了一个「GitHub 精选交流群」,欢迎大家一起交流优秀开源项目,也可以宣传自己的开源项目,在 「GitHub 黑板报」公众号后台回复【加群 】邀请你入群。
点击下方公众号卡片,即可关注我,每天为大家推送优质开源项目,在对话框回复关键字,即可加群。
更多AI工具,参考Github-AiBard123,国内AiBard123