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/
经验分享 程序员 微信小程序 职场和发展