Gin 配置到Nacos注册中心
环境
Nacos 1.14
Go Version 1.20.5
下载依赖
go get github.com/creasty/defaults go get github.com/creasty/defaults go get github.com/nacos-group/nacos-sdk-go go get -u github.com/gin-gonic/gin
Nacos配置
1、单机启动Nacos
startup.cmd -m standalone
2、新建命名空间
3、新建配置
Go代码
输入对应的信息: Nacos的IP Nacos的端口 Nacos对应的命名空间 Nacos配置列表的Data ID Nacos配置列表的Group Gin服务器的IP Gin服务器的端口
package main import ( "log" "net/http" "os" "os/signal" "syscall" "github.com/gin-gonic/gin" "github.com/nacos-group/nacos-sdk-go/clients" "github.com/nacos-group/nacos-sdk-go/common/constant" "github.com/nacos-group/nacos-sdk-go/vo" ) // main // go get github.com/creasty/defaults // go get github.com/creasty/defaults // go get github.com/nacos-group/nacos-sdk-go // @Description:Nacos配置Gin到服务列表 func main() { // Nacos服务器配置 sc := []constant.ServerConfig{ { IpAddr: "127.0.0.1", Port: 8848, // 替换为Nacos服务器的IP地址和端口 }, } // Nacos客户端配置 cc := constant.ClientConfig{ NamespaceId: "6628601f-3571-47d6-a29e-fe0e79d4ba28", // 替换为您的命名空间ID TimeoutMs: 5000, NotLoadCacheAtStart: true, LogDir: "logs", CacheDir: "cache", LogLevel: "debug", } // 创建Nacos注册中心客户端 client, err := clients.CreateNamingClient(map[string]interface{ }{ "serverConfigs": sc, "clientConfig": cc, }) if err != nil { log.Fatal(err) } // 服务注册到Nacos serviceName := "go-test" // 替换为您的服务名称 groupName := "DEFAULT_GROUP" // 替换为您的组名称 ip := "127.0.0.1" // 替换为您的服务IP port := 8080 // 替换为您的服务端口 _, err = client.RegisterInstance(vo.RegisterInstanceParam{ Ip: ip, Port: uint64(port), ServiceName: serviceName, GroupName: groupName, }) if err != nil { log.Fatal(err) } // 初始化Gin框架 router := gin.Default() // 添加路由处理函数 router.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Hello, Nacos!") }) // 启动HTTP服务器 go func() { if err := router.Run(":8080"); err != nil { log.Fatal(err) } }() // 等待中断信号以优雅地退出 quit := make(chan os.Signal, 1) signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM) <-quit // 取消服务注册 _, err = client.DeregisterInstance(vo.DeregisterInstanceParam{ Ip: ip, Port: uint64(port), ServiceName: serviceName, GroupName: groupName, }) if err != nil { log.Fatal(err) } }
Nacos服务列表
浏览器访问:
http://localhost:8080/
下一篇:
学术垃圾的第三天(没有第二天