最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言操作之nacos配置中心

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

go語言nacos配置中心

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

官方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() {
	// 至少一個ServerConfig
	serverConfigs := []constant.ServerConfig{
		{
			IpAddr:      "192.168.72.146",
			Port:        8848,
		},
	}
	// 創(chuàng)建clientConfig
	clientConfig := constant.ClientConfig{
		NamespaceId:         "1cf91be1-d0e3-4494-aef7-b3cb8177e04e", // 如果需要支持多namespace,我們可以場景多個client,它們有不同的NamespaceId。當namespace是public時,此處填空字符串。
		TimeoutMs:           5000,
		NotLoadCacheAtStart: true,
		LogDir:              "tmp/nacos/log",
		CacheDir:            "tmp/nacos/cache",
		RotateTime:          "1h",
		MaxAge:              3,
		LogLevel:            "debug",
	}
	// 創(chuà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)聽配置
	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配置中心進行服務(wù)組件配置

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

這里因為沒用viper 進行本地配置文件的解析.

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

zhe

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

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

總結(jié)

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

相關(guān)文章

  • golang 對私有函數(shù)進行單元測試的實例

    golang 對私有函數(shù)進行單元測試的實例

    這篇文章主要介紹了golang 對私有函數(shù)進行單元測試的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • 并發(fā)安全本地化存儲go-cache讀寫鎖實現(xiàn)多協(xié)程并發(fā)訪問

    并發(fā)安全本地化存儲go-cache讀寫鎖實現(xiàn)多協(xié)程并發(fā)訪問

    這篇文章主要介紹了并發(fā)安全本地化存儲go-cache讀寫鎖實現(xiàn)多協(xié)程并發(fā)訪問,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Golang字符串變位詞示例詳解

    Golang字符串變位詞示例詳解

    這篇文章主要給大家介紹了關(guān)于GoLang字符串變位詞的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • Golang中的包及包管理工具go?mod詳解

    Golang中的包及包管理工具go?mod詳解

    這篇文章主要介紹了Golang中的包及包管理工具go?mod,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Go語言實現(xiàn)簡易命令行定時提醒程序的示例代碼

    Go語言實現(xiàn)簡易命令行定時提醒程序的示例代碼

    在日常工作和學(xué)習(xí)中,我們常常需要一個小工具來提醒自己,本文將用 Go 寫一個輕量級的 命令行定時提醒程序,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2025-09-09
  • 使用Gin框架返回JSON、XML和HTML數(shù)據(jù)

    使用Gin框架返回JSON、XML和HTML數(shù)據(jù)

    Gin是一個高性能的Go語言Web框架,它不僅提供了簡潔的API,還支持快速的路由和中間件處理,在Web開發(fā)中,返回JSON、XML和HTML數(shù)據(jù)是非常常見的需求,本文將介紹如何使用Gin框架來返回這三種類型的數(shù)據(jù),需要的朋友可以參考下
    2024-08-08
  • golang使用http client發(fā)起get和post請求示例

    golang使用http client發(fā)起get和post請求示例

    這篇文章主要介紹了golang使用http client發(fā)起get和post請求示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Golang 實現(xiàn)插入排序的方法示例(2種)

    Golang 實現(xiàn)插入排序的方法示例(2種)

    這篇文章主要介紹了Golang 實現(xiàn)插入排序的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • GO語言實現(xiàn)串口簡單通訊

    GO語言實現(xiàn)串口簡單通訊

    本文分享了使用Go語言進行串口通訊的實踐過程,詳細介紹了串口配置、數(shù)據(jù)發(fā)送與接收的代碼實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-11-11
  • 深入了解Go語言中web框架的中間件運行機制

    深入了解Go語言中web框架的中間件運行機制

    大家在使用iris框架搭建web系統(tǒng)時,一定會用到中間件。那么你了解中間件的運行機制嗎?你知道為什么在iris和gin框架的請求處理函數(shù)中要加c.Next()函數(shù)嗎?本文就和大家一起探究該問題的答案
    2023-02-02

最新評論

温宿县| 五大连池市| 昌黎县| 乌兰县| 昌宁县| 邵武市| 新乐市| 钟山县| 巴林右旗| 嘉义县| 吉水县| 从江县| 保亭| 宁河县| 清水河县| 南陵县| 安阳市| 三明市| 苏尼特左旗| 介休市| 通海县| 武定县| 洛宁县| 依兰县| 托里县| 盐亭县| 二连浩特市| 虎林市| 五华县| 河间市| 四会市| 扎兰屯市| 江华| 双峰县| 宝坻区| 新乡县| 贡觉县| 南皮县| 富顺县| 容城县| 正蓝旗|