4 Commits

Author SHA1 Message Date
yoyofx
59ac25d85d Merge remote-tracking branch 'origin/main' into main 2021-05-12 13:37:09 +08:00
yoyofx
6d316c475f viper provider 2021-05-12 13:34:53 +08:00
YoyoFx
39af901d9d Update example_config.yaml 2021-04-30 11:17:50 +08:00
YoyoFx
a518073e67 Update README.md 2021-04-29 22:13:55 +08:00
3 changed files with 42 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
# nacos-viper-remote # Viper remote for Nacos
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.

39
config_remote_provider.go Normal file
View File

@@ -0,0 +1,39 @@
package nacos_viper_remote
import (
"fmt"
"github.com/spf13/viper"
)
type ViperRemoteProvider struct {
configSet string
}
func NewRemoteProvider() *ViperRemoteProvider {
return &ViperRemoteProvider{
configSet: "yoyogo.cloud.discovery.metadata"}
}
func (provider *ViperRemoteProvider) GetProvider(runtime_viper *viper.Viper) *viper.Viper {
var option *Option
err := runtime_viper.Sub("yoyogo.cloud.discovery.metadata").Unmarshal(&option)
if err != nil {
panic(err)
return nil
}
SetOptions(option)
remote_viper := viper.New()
err = remote_viper.AddRemoteProvider("nacos", "localhost", "")
remote_viper.SetConfigType("yaml")
err = remote_viper.ReadRemoteConfig()
if err == nil {
err = remote_viper.WatchRemoteConfigOnChannel()
if err == nil {
fmt.Println("used remote viper")
return remote_viper
}
} else {
panic(err)
}
return runtime_viper
}

View File

@@ -8,7 +8,7 @@ yoyogo:
strategy: "round-robin" # round-robin , weight-time , random strategy: "round-robin" # round-robin , weight-time , random
type: "nacos" type: "nacos"
metadata: metadata:
url: "120.53.133.30" url: "localhost"
port: 80 port: 80
namespace: "public" namespace: "public"
group: "DEFAULT_GROUP" group: "DEFAULT_GROUP"
@@ -17,4 +17,4 @@ yoyogo:
auth: auth:
enable: true enable: true
username: "root" username: "root"
password: "1234" password: "1234"