package main
import (
"database/sql"
"log"
"time"
_ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
func init() {
var err error
db, err = sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/config_db")
if err != nil {
log.Fatal(err)
}
}
func fetchConfig() {
rows, err := db.Query("SELECT key, value FROM configurations")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var key, value string
err := rows.Scan(&key, &value)
if err != nil {
log.Fatal(err)
}
log.Printf("Key: %s, Value: %s", key, value)
}
}
func main() {
ticker := time.NewTicker(1 * time.Minute)
defer ticker.Stop()
for {
select {
case <-ticker.C:
fetchConfig()
}
}
}
package main
import (
"context"
"log"
"time"
clientv3 "go.etcd.io/etcd/client/v3"
)
func main() {
cli, err := clientv3.New(clientv3.Config{
Endpoints: []string{"localhost:2379"},
DialTimeout: 5 * time.Second,
})
if err != nil {
log.Fatal(err)
}
defer cli.Close()
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
_, err = cli.Put(ctx, "config_key", "config_value")
cancel()
if err != nil {
log.Fatal(err)
}
ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second)
resp, err := cli.Get(ctx, "config_key")
cancel()
if err != nil {
log.Fatal(err)
}
for _, ev := range resp.Kvs {
log.Printf("%s: %s\n", ev.Key, ev.Value)
}
}
package main
import (
"github.com/nacos-group/nacos-sdk-go/v2/common/constant"
"github.com/nacos-group/nacos-sdk-go/v2/clients"
"github.com/nacos-group/nacos-sdk-go/v2/clients/config_client"
"github.com/nacos-group/nacos-sdk-go/v2/vo"
"log"
)
func main() {
serverConfigs := []constant.ServerConfig{
*constant.NewServerConfig("127.0.0.1", 8848),
}
clientConfig := *constant.NewClientConfig(
constant.WithNamespaceId("public"),
constant.WithTimeoutMs(5000),
constant.WithNotLoadCacheAtStart(true),
)
configClient, err := clients.NewConfigClient(
vo.NacosClientParam{
ClientConfig: &clientConfig,
ServerConfigs: serverConfigs,
},
)
if err != nil {
log.Fatal(err)
}
content, err := configClient.GetConfig(vo.ConfigParam{
DataId: "example",
Group: "DEFAULT_GROUP",
})
if err != nil {
log.Fatal(err)
}
log.Println("Config content:", content)
}
package main
import (
"log"
"github.com/hashicorp/consul/api"
)
func main() {
config := api.DefaultConfig()
config.Address = "127.0.0.1:8500"
client, err := api.NewClient(config)
if err != nil {
log.Fatal(err)
}
kv := client.KV()
p := &api.KVPair{Key: "config_key", Value: []byte("config_value")}
_, err = kv.Put(p, nil)
if err != nil {
log.Fatal(err)
}
pair, _, err := kv.Get("config_key", nil)
if err != nil {
log.Fatal(err)
}
log.Printf("KV: %v", pair)
}
目前,对编程、职场感兴趣的同学,大家可以联系我微信:golang404,拉你进入“程序员交流群”。
🔥虎哥私藏精品 热门推荐🔥
资料包含了《IDEA视频教程》、《最全GO面试题库》、《最全项目实战源码及视频》及《毕业设计系统源码》,总量高达650GB。全部免费领取!全面满足各个阶段程序员的学习需求!
到此这篇配置中心的主要作用(配置中心的原理)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/qkl-jr/50292.html