环境
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/