You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jesse.tang
4d95050747
|
2 years ago | |
---|---|---|
.. | ||
README.md | 3 years ago | |
apollo.go | 2 years ago | |
go.mod | 2 years ago | |
go.sum | 3 years ago | |
parser.go | 2 years ago | |
watcher.go | 2 years ago |
README.md
Apollo config centry
This module implements the config.Source
interface in kratos based apollo config management center.
Quick start
import (
"fmt"
"log"
"github.com/go-kratos/kratos/contrib/config/apollo/v2"
"github.com/go-kratos/kratos/v2/config"
)
func main() {
c := config.New(
config.WithSource(
apollo.NewSource(
apollo.WithAppID("kratos"),
apollo.WithCluster("dev"),
apollo.WithEndpoint("http://localhost:8080"),
apollo.WithNamespace("application,event.yaml,demo.json"),
apollo.WithEnableBackup(),
apollo.WithSecret("ad75b33c77ae4b9c9626d969c44f41ee"),
),
),
)
var bc bootstrap
if err := c.Load(); err != nil {
panic(err)
}
// use value and watch operations,help yourself.
}
Options list
You get what you see.
// specify the app id
func WithAppID(appID string) Option
// specify the cluster of application
func WithCluster(cluster string) Option
// enable backup or not, and where to back up them.
func WithBackupPath(backupPath string) Option
func WithDisableBackup() Option
func WithEnableBackup() Option
// specify apollo endpoint, such as http://localhost:8080
func WithEndpoint(endpoint string) Option
// namespaces to load, comma to separate.
func WithNamespace(name string) Option
// secret is the apollo secret key to access application config.
func WithSecret(secret string) Option
Notice
apollo config center use Namespace
to be part of the key. For example:
application.json
{
"http": {
"address": ":8080",
"tls": {
"enable": false,
"cert_file": "",
"key_file": ""
}
}
}
you got them in kratos config instance maybe look like:
config := map[string]interface{}{
// application be part of the key path.
"application": map[string]interface{}{
"http": map[string]interface{}{
"address": ":8080",
"tls": map[string]interface{}{
"enable": false,
"cert_file": "",
"key_file": ""
}
}
}
}
_ = config