easy-ngo 项目教程
easy-ngo-layout项目地址:https://gitcode.com/gh_mirrors/ea/easy-ngo-layout
项目介绍
easy-ngo 是由网易传媒开发的基于 Go 语言的开发工具包。它旨在帮助开发者快速构建高可用、大并发的应用。easy-ngo 已经在网易传媒内部大量使用,节省了业务开发的大量时间。使用 easy-ngo 带来的好处包括开箱即用、支持多种配置源、支持 Metrics、Tracer、Logger 等可观测性功能。
项目快速启动
克隆项目
首先,将代码从 GitHub 上克隆下来:
git clone https://github.com/NetEase-Media/easy-ngo-layout.git
进入示例目录
进入示例目录:
cd easy-ngo-layout/examples/application
查看代码
查看示例代码如下:
package main
import (
"net/http"
"github.com/NetEase-Media/easy-ngo/application"
_ "github.com/NetEase-Media/easy-ngo/application/r/rconfig"
"github.com/NetEase-Media/easy-ngo/application/r/rgin"
_ "github.com/NetEase-Media/easy-ngo/examples/application/include"
"github.com/gin-gonic/gin"
)
func main() {
app := application.Default()
app.Initialize(xgin)
app.Startup()
}
func xgin() error {
g := rgin.Gin()
g.GET("/hello", func(ctx *gin.Context) {
ctx.String(http.StatusOK, "hello world")
})
return nil
}
查看配置
查看配置文件如下:
[ngo.app]
name = "quickstart-demo"
[ngo.server.gin]
port = 8888
enabledMetric = false
[ngo.app.healthz]
port = 10000
运行服务
运行以下命令,最简单的服务便启动了:
go run -c /app.toml
应用案例和最佳实践
应用案例
easy-ngo 已经在网易传媒内部多个项目中得到应用,例如新闻推送系统、用户行为分析系统等。这些系统都依赖于 easy-ngo 提供的高性能和稳定性。
最佳实践
- 配置管理:使用 ENV、Param、Apollo 等配置源,确保配置的灵活性和可维护性。
- 可观测性:利用 easy-ngo 内置的 Metrics、Tracer、Logger 功能,实现对应用的全面监控。
- 性能优化:通过调整配置和优化代码,确保应用在高并发场景下的性能表现。
典型生态项目
监控系统
- Prometheus:结合 easy-ngo 的 Metrics 功能,实现对应用性能的实时监控。
- Jaeger:利用 easy-ngo 的 Tracer 功能,实现全链路监控,帮助定位性能瓶颈。
配置中心
- Apollo:与 easy-ngo 集成,实现动态配置管理,提高应用的灵活性和可维护性。
服务发现
- Consul:结合 easy-ngo 的服务注册与发现功能,实现微服务架构中的服务治理。
通过以上模块的介绍和实践,开发者可以快速上手并利用 easy-ngo 构建高性能、高可用的应用。
easy-ngo-layout项目地址:https://gitcode.com/gh_mirrors/ea/easy-ngo-layout