Viper for Nacos v0.3.0

栏目: 软件资讯 · 发布时间: 3年前

内容简介:v0.3.0更新: 升级依赖: viper v1.8.1 此版本解决了 viper老版本中依赖etcd的问题,由于etcd v3.5.0 解决了模块化的问题; 这一版中我们可以同时集成grpc 、etcd 的最新版本。 Viper remote# 在Viper中启用远程支...

v0.3.0更新:

升级依赖: viper v1.8.1

此版本解决了 viper老版本中依赖etcd的问题,由于etcd v3.5.0 解决了模块化的问题;

这一版中我们可以同时集成grpc 、etcd 的最新版本。

Viper remote#

在Viper中启用远程支持,需要在代码中匿名导入viper/remote这个包。

import _ "github.com/spf13/viper/remote"

通过remote,Viper将支持读取从Key/Value存储( 例如etcd或Consul或本文中的Nacos ).

Viper加载配置值的优先级#

磁盘上的配置文件 > 命令行标志位 > 环境变量 > 远程Key/Value存储 > 默认值 。

Nacos 支持#

引用我们的开源库 https://github.com/yoyofxteam/nacos-viper-remote

import (
	"github.com/spf13/viper"
	remote "github.com/yoyofxteam/nacos-viper-remote"
)

在项目中使用:

runtime_viper := viper.New()
// 配置 Viper for Nacos 的远程仓库参数
remote.SetOptions(&remote.Option{
   Url:         "localhost",            // nacos server 多地址需要地址用;号隔开,如 Url: "loc1;loc2;loc3"
   Port:        80,                     // nacos server端口号
   NamespaceId: "public",               // nacos namespace
   GroupName:   "DEFAULT_GROUP",        // nacos group
   Config: 	remote.Config{ DataId: "config_dev" }, // nacos DataID
   Auth:        nil,                    // 如果需要验证登录,需要此参数
})

err := remote_viper.AddRemoteProvider("nacos", "localhost", "")
remote_viper.SetConfigType("yaml")

_ = remote_viper.ReadRemoteConfig()             //sync get remote configs to remote_viper instance memory . for example , remote_viper.GetString(key)
_ = remote_viper.WatchRemoteConfigOnChannel()   //异步监听Nacos中的配置变化,如发生配置更改,会直接同步到 viper实例中。

appName := remote_viper.GetString("key")   // sync get config by key

fmt.Println(appName)

// 这里不是必须的,只为了监控Demo中的配置变化,并打印出来
go func() {
    for {
        time.Sleep(time.Second * 30) // 每30秒检查配置是否发生变化 
        appName = config_viper.GetString("yoyogo.application.name")
        fmt.Println(appName)
    }
}()

些项目已集成到 yoyogo

https://gitee.com/yoyofx/yoyogo

???????? YoyoGo is a simple, light and fast , dependency injection based micro-service framework written in Go. Support Nacos ,Consoul ,Etcd ,Eureka ,kubernetes.


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编码

编码

查尔斯•佩措尔德 (Charles Petzold) / 左飞、薛佟佟 / 电子工业出版社 / 2012-10-1 / 59.00元

编码:隐匿在计算机软硬件背后的语言,ISBN:9787121181184,作者:(美)佩措尔德(Petzold,C.)著 左飞,薛佟佟译一起来看看 《编码》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换