Go-Zero微服务快速入门和最佳实践
package main
import (
"flag"
"fmt"
"github.com/tal-tech/go-zero/core/conf"
"github.com/tal-tech/go-zero/rest"
"net/http"
)
// 定义配置结构体
type Config struct {
rest.ServiceConfig
Hello struct {
Message string `json:"message"`
}
}
func main() {
// 解析命令行参数,这里用于指定配置文件
var configFile string
flag.StringVar(&configFile, "f", "config.yaml", "config file")
flag.Parse()
var cfg Config
// 加载配置文件
conf.MustLoad(configFile, &cfg)
// 初始化http服务
server := rest.MustNewServer(cfg.ServiceConfig)
defer server.Stop() // 确保服务停止
// 定义一个简单的hello handler
helloHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %s!", cfg.Hello.Message)
})
// 在服务中注册路由
server.AddRoute(rest.Route{
Method: http.MethodGet,
Path: "/hello",
Handler: helloHandler,
})
// 启动服务
fmt.Printf("Server starting, port: %d\n", server.Port())
server.Start()
}
这段代码展示了如何使用Go-Zero框架快速创建一个HTTP服务,并配置一个简单的路由。它包括了配置文件的加载、服务的初始化和路由的设置。通过这个示例,开发者可以快速了解Go-Zero的基本使用方法,并将其应用到自己的项目中。
评论已关闭