2 Commits
v0.4.0 ... dev

Author SHA1 Message Date
yoyofx
a16a88e3c9 print namespace and gourpname by nacos 2021-07-30 12:26:44 +08:00
yoyofx
e39cfe4cdd notify event on remote config changed 2021-07-30 11:07:27 +08:00
2 changed files with 25 additions and 6 deletions

View File

@@ -3,7 +3,7 @@
Golang configuration,use to Viper reading from remote Nacos config systems. Viper remote for Naocs. Golang configuration,use to Viper reading from remote Nacos config systems. Viper remote for Naocs.
```go ```go
runtime_viper := viper.New() config_viper := viper.New()
remote.SetOptions(&remote.Option{ remote.SetOptions(&remote.Option{
Url: "localhost", Url: "localhost",
@@ -14,13 +14,30 @@ remote.SetOptions(&remote.Option{
Auth: nil, Auth: nil,
}) })
remote_viper := viper.New()
err := remote_viper.AddRemoteProvider("nacos", "localhost", "") err := remote_viper.AddRemoteProvider("nacos", "localhost", "")
remote_viper.SetConfigType("yaml") remote_viper.SetConfigType("yaml")
err = remote_viper.ReadRemoteConfig() //sync get remote configs to remote_viper instance memory . for example , remote_viper.GetString(key)
_ = remote_viper.ReadRemoteConfig() //sync get remote configs to remote_viper instance memory . for example , remote_viper.GetString(key) if err == nil {
_ = remote_viper.WatchRemoteConfigOnChannel() //async watch , auto refresh configs. config_viper = remote_viper
fmt.Println("used remote viper")
provider := remote.NewRemoteProvider("yaml")
respChan := provider.WatchRemoteConfigOnChannel(config_viper)
appName := remote_viper.GetString("key") // sync get config by key go func(rc <-chan bool) {
for {
<-rc
fmt.Printf("remote async: %s", config_viper.GetString("yoyogo.application.name"))
}
}(respChan)
}
fmt.Println(appName) go func() {
for {
time.Sleep(time.Second * 30) // delay after each request
appName = config_viper.GetString("yoyogo.application.name")
fmt.Println("sync:" + appName)
}
}()
``` ```

View File

@@ -35,7 +35,9 @@ func (provider *ViperRemoteProvider) GetProvider(runtimeViper *viper.Viper) *vip
if err == nil { if err == nil {
//err = remote_viper.WatchRemoteConfigOnChannel() //err = remote_viper.WatchRemoteConfigOnChannel()
if err == nil { if err == nil {
fmt.Println("used remote viper") fmt.Println("config center ..........")
fmt.Println("used remote viper by Nacos")
fmt.Printf("Nacos config: namespace: %s , group: %s", option.NamespaceId, option.GroupName)
return remote_viper return remote_viper
} }
} else { } else {