使用指南
Joe Zou edited this page Sep 16, 2020
·
38 revisions
- Go1.11+ (最好使用Go1.12)
go get -u github.com/zouyx/agollo/v4@latest
go.mod
require github.com/zouyx/agollo/v4 latest
执行
go mod tidy
import
import (
"github.com/zouyx/agollo/v4"
)
FAQ
Apollo客户端依赖于AppId,Environment等环境信息来工作,所以请确保阅读下面的说明并且做正确的配置:
配置文件结构如下:
- main.exe : your application
- app.properties (必要) : 连接服务端必要配置
- seelog.xml(非必要)
加载优先级:
- 类配置
- 环境变量指定配置文件
- 默认(app.properties)配置文件
会覆盖app.properties中配置,类配置agollo的demo:
package main
import (
"fmt"
"github.com/zouyx/agollo/v4"
"github.com/zouyx/agollo/v4/env/config"
)
func main(){
c := &config.AppConfig{
AppID: "testApplication_yang",
Cluster: "dev",
IP: "http://106.54.227.205:8080",
NamespaceName: "dubbo",
IsBackupConfig: true,
Secret: "6ce3ff7e96a24335a9634fe9abca6d51",
}
agollo.SetLogger(&DefaultLogger{})
client,err:=agollo.StartWithConfig(func() (*config.AppConfig, error) {
return c, nil
})
fmt.Println("初始化Apollo配置成功")
//Use your apollo key to test
cache := client.GetConfigCache(c.NamespaceName)
value,_ := client.Get("key")
fmt.Println(value)
}
Linux/Mac
export AGOLLO_CONF=/a/conf.properties
Windows
set AGOLLO_CONF=c:/a/conf.properties
配置文件内容与app.properties内容一样
1.开发:请确保 app.properties 文件存在于workingdir目录下
2.打包后:请确保 app.properties 文件存在于与打包程序同级目录下,参考1.3.必要配置。
目前只支持json形式,其中字段包括:
-
appId :应用的身份信息,是从服务端获取配置的一个重要信息。
-
cluster :需要连接的集群,默认default
-
namespaceName :命名空间,默认:application(具体定义参考:namespace),多namespace使用英文逗号分割, 非key/value配置(json,properties,yml等),则配置为:namespace.文件类型。如:namespace.json
-
ip :Apollo的CONFIG_SERVICE的ip,非META_SERVICE地址
配置例子如下:
一般配置
{
"appId": "test",
"cluster": "dev",
"namespaceName": "application",
"ip": "localhost:8888"
}
多namespace配置
{
"appId": "test",
"cluster": "dev",
"namespaceName": "application,applications1",
"ip": "localhost:8888"
}
非key/value namespace配置
{
"appId": "test",
"cluster": "dev",
"namespaceName": "application.json,a.yml",
"ip": "localhost:8888"
}
参考:
设计文档
开发文档
基本使用
高级使用