1. 程式人生 > 其它 >nacos 配置中心使用

nacos 配置中心使用

主要解決一個配置進行更改,所有例項都要進行配置重啟的問題

名稱空間:用來隔離配置,一般一個微服務一個名稱空間

組:一般用來區分開發環境、測試環境、生產環境

nacos官方文件

 

docker 安裝啟動

docker run --name nacos-standalone -e MODE=standalone -e JVM_XMS=512m -e JVM_XMX=512m -e JVM_XMN=256m -p 8848:8848 -d nacos/nacos-server:latest

 

訪問地址 http://localhost:8848/nacos/index.html

賬號/密碼:nacos/nacos

 

go 讀取 nacos,使用 nacos-sdk-go

package main

import (
    "fmt"
    "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"
    "time"
)

func main() {
    // 配置中心資訊
    serverConfigs := []constant.ServerConfig{
        {
            IpAddr:      
"192.168.1.8", ContextPath: "/nacos", Port: 8848, Scheme: "http", }, } // 客戶端資訊 clientConfig := constant.ClientConfig{ NamespaceId: "85e41fdb-0887-48b0-b776-1f521e5c7a6d", // 如果需要支援多namespace,我們可以場景多個client,它們有不同的NamespaceId。當namespace是public時,此處填空字串。
TimeoutMs: 5000, NotLoadCacheAtStart: true, LogDir: "tmp/nacos/log", CacheDir: "tmp/nacos/cache", LogLevel: "debug", } // 建立動態配置客戶端 configClient, err := clients.NewConfigClient( vo.NacosClientParam{ ClientConfig: &clientConfig, ServerConfigs: serverConfigs, }, ) if err != nil { panic(err) } //// 獲取配置 //content, err := configClient.GetConfig(vo.ConfigParam{ // DataId: "config", // Group: "prod"}) // //if err != nil { // panic(err) //} // //fmt.Println(content) //監聽配置中心變化 err = configClient.ListenConfig(vo.ConfigParam{ DataId: "config", Group: "prod", OnChange: func(namespace, group, dataId, data string) { fmt.Println("group:" + group + ", dataId:" + dataId + ", data:" + data) }, }) if err != nil { panic(err) } time.Sleep(time.Hour) }