亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

go語(yǔ)言操作之nacos配置中心

 更新時(shí)間:2023年06月12日 09:41:34   作者:中二的灰太狼  
這篇文章主要介紹了go語(yǔ)言操作之nacos配置中心,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

go語(yǔ)言nacos配置中心

nacos配置中心,由于是阿里開(kāi)發(fā)的,所以官方文檔支持中文,非常友好,這是官方的go的SDK,已經(jīng)非常詳細(xì)了

官方SDK網(wǎng)址

下面是例子,演示了golang如何使用從nacos獲取配置的信息,返回的是字符串

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() {
	// 至少一個(gè)ServerConfig
	serverConfigs := []constant.ServerConfig{
		{
			IpAddr:      "192.168.72.146",
			Port:        8848,
		},
	}
	// 創(chuàng)建clientConfig
	clientConfig := constant.ClientConfig{
		NamespaceId:         "1cf91be1-d0e3-4494-aef7-b3cb8177e04e", // 如果需要支持多namespace,我們可以場(chǎng)景多個(gè)client,它們有不同的NamespaceId。當(dāng)namespace是public時(shí),此處填空字符串。
		TimeoutMs:           5000,
		NotLoadCacheAtStart: true,
		LogDir:              "tmp/nacos/log",
		CacheDir:            "tmp/nacos/cache",
		RotateTime:          "1h",
		MaxAge:              3,
		LogLevel:            "debug",
	}
	// 創(chuàng)建動(dòng)態(tài)配置客戶端的另一種方式 (推薦)
	configClient, err := clients.NewConfigClient(
		vo.NacosClientParam{
			ClientConfig:  &clientConfig,
			ServerConfigs: serverConfigs,
		},
	)
	if err != nil {
		panic(err)
	}
	//獲取配置信息
	//content, err := configClient.GetConfig(vo.ConfigParam{
	//	DataId: "user-web.yaml",
	//	Group:  "dev"})
	//if err != nil {
	//	fmt.Println("GetConfig err: ",err)
	//}
	//監(jiān)聽(tīng)配置
	err = configClient.ListenConfig(vo.ConfigParam{
		DataId: "user-web.yaml",
		Group:  "dev",
		OnChange: func(namespace, group, dataId, data string) {
			fmt.Println("group:" + group + ", dataId:" + dataId + ", data:" + data)
		},
	})
	if err!=nil{
		return
	}
	time.Sleep(time.Second*1000)
}

結(jié)果:

go使用nacos配置中心進(jìn)行服務(wù)組件配置

go使用nacos配置中心進(jìn)行服務(wù)組件配置.

這里因?yàn)闆](méi)用viper 進(jìn)行本地配置文件的解析.

所以使用的直接是nacos的明文配置.

zhe

func initNacosFrom() {
   serverConfigs := []constant.ServerConfig{ //指定nacos服務(wù)地址.配置連接信息
      {
         //IpAddr: Nacos.Host, //這里是指定nacos的服務(wù)連接地址
         //Port:   Nacos.Port, //指定端口號(hào)
         //
         IpAddr: "192.168.75.6", //這里是指定nacos的服務(wù)連接地址
         Port:   8848,           //指定端口號(hào)
      },
   }
   clientConfig := constant.ClientConfig{ //配置客戶端配置信息.用來(lái)做客戶端初始化配置.
      TimeoutMs:   5000,                                   //連接超時(shí)時(shí)間
      NamespaceId: "8774e75a-fbe8-4b29-8194-4e70f482924d", //這里寫(xiě)的是命名空間的地址.用哪個(gè)就寫(xiě)哪個(gè),這里用的是dev的命名空間
      //NamespaceId:          , //這里寫(xiě)的是命名空間的地址.用哪個(gè)就寫(xiě)哪個(gè),這里用的是dev的命名空間
      CacheDir:             "nacos/cache", //nacos緩存目錄
      NotLoadCacheAtStart:  true,          //配置是否在服務(wù)啟動(dòng)時(shí)直接加載緩存??
      UpdateCacheWhenEmpty: false,         //配置當(dāng)緩存為空的時(shí)候進(jìn)行主動(dòng)更新
      LogDir:               "nacos/log",   //日志目錄
      LogLevel:             "debug",       //日志級(jí)別
   }
   configClient, err := clients.CreateConfigClient(map[string]interface{}{ //根據(jù)nacos的地址信息和需要的配置頁(yè)面信息生成一個(gè)客戶端.
      "serverConfigs": serverConfigs,
      "clientConfig":  clientConfig,
   })
   if err != nil {
      panic(err)
   }
   content, err := configClient.GetConfig(vo.ConfigParam{ //讀取在頁(yè)面上配置好de相關(guān)信息.
      // 這里用的是dev分組中的account_web配置.以后這里的配置可以使用viper進(jìn)行參數(shù)配置.
      DataId: "account_all.json",
      Group:  "dev",
   })
   if err != nil {
      panic(err)
   }
   err = json.Unmarshal([]byte(content), &AppConf)
   if err != nil {
      fmt.Println(err)
      zap.S().Error("反序列化錯(cuò)誤")
   }
}

這里聲明的方法信息用在初始化配置時(shí)使用,按在init函數(shù)中。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Golang并發(fā)發(fā)送HTTP請(qǐng)求的各種方法

    Golang并發(fā)發(fā)送HTTP請(qǐng)求的各種方法

    在 Golang 領(lǐng)域,并發(fā)發(fā)送 HTTP 請(qǐng)求是優(yōu)化 Web 應(yīng)用程序的一項(xiàng)重要技能,本文探討了實(shí)現(xiàn)此目的的各種方法,從基本的 goroutine 到涉及通道和sync.WaitGroup 的高級(jí)技術(shù),需要的朋友可以參考下
    2024-02-02
  • golang?debug調(diào)試的實(shí)現(xiàn)

    golang?debug調(diào)試的實(shí)現(xiàn)

    本文主要介紹了使用Go語(yǔ)言進(jìn)行本地調(diào)試和遠(yuǎn)程調(diào)試,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Go 實(shí)現(xiàn)熱重啟的詳細(xì)介紹

    Go 實(shí)現(xiàn)熱重啟的詳細(xì)介紹

    這篇文章主要介紹了Go 實(shí)現(xiàn)熱重啟的詳細(xì)介紹,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • go語(yǔ)言?http模型reactor示例詳解

    go語(yǔ)言?http模型reactor示例詳解

    這篇文章主要介紹了go語(yǔ)言?http模型reactor,接下來(lái)看一段基于reactor的示例,這里運(yùn)行通過(guò)?go?run?main.go,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • golang fmt格式“占位符”的實(shí)例用法詳解

    golang fmt格式“占位符”的實(shí)例用法詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于golang fmt格式“占位符”的實(shí)例用法詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-07-07
  • Go語(yǔ)言反射獲取類型屬性和方法示例

    Go語(yǔ)言反射獲取類型屬性和方法示例

    這篇文章主要為大家介紹了本文將介紹?Go?反射?reflect.StructField?和?reflect.Method?相關(guān)的內(nèi)容,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 淺析Golang中的內(nèi)存逃逸

    淺析Golang中的內(nèi)存逃逸

    內(nèi)存逃逸分析是go的編譯器在編譯期間,根據(jù)變量的類型和作用域,確定變量是堆上還是棧上。本文將通過(guò)示例淺析一下Golang中的內(nèi)存逃逸,需要的可以了解一下
    2022-10-10
  • Go 并發(fā)控制context實(shí)現(xiàn)原理剖析(小結(jié))

    Go 并發(fā)控制context實(shí)現(xiàn)原理剖析(小結(jié))

    Golang context是Golang應(yīng)用開(kāi)發(fā)常用的并發(fā)控制技術(shù),這篇文章主要介紹了Go 并發(fā)控制context實(shí)現(xiàn)原理剖析(小結(jié)),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • go 代碼格式化和風(fēng)格開(kāi)發(fā)者指南

    go 代碼格式化和風(fēng)格開(kāi)發(fā)者指南

    這篇文章主要為大家介紹了go 代碼格式化和風(fēng)格開(kāi)發(fā)者指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Go Struct結(jié)構(gòu)體的具體實(shí)現(xiàn)

    Go Struct結(jié)構(gòu)體的具體實(shí)現(xiàn)

    Go語(yǔ)言中通過(guò)結(jié)構(gòu)體的內(nèi)嵌再配合接口比面向?qū)ο缶哂懈叩臄U(kuò)展性和靈活性,本文主要介紹了Go Struct結(jié)構(gòu)體的具體實(shí)現(xiàn),感興趣的可以了解一下
    2023-03-03

最新評(píng)論