监控代码

package mainimport ("go.etcd.io/etcd/clientv3""time""fmt""context"
)func main() {cli, err := clientv3.New(clientv3.Config{Endpoints:[]string{"localhost:2379", "localhost:23279", "localhost:33279"},//etcd集群三个实例的端口DialTimeout:2*time.Second,})if err != nil {fmt.Println("connect failed, err:", err)return}fmt.Println("connect succ")defer cli.Close()for true {rch := cli.Watch(context.Background(), "/logagent/conf/")//阻塞在这里,如果没有key里没有变化,就一直停留在这里for wresp := range rch{for _, ev := range wresp.Events{fmt.Printf("%s %q:%q\n", ev.Type, ev.Kv.Key, ev.Kv.Value)}}}
}

配置变更代码

package mainimport ("go.etcd.io/etcd/clientv3""time""fmt""context"
)func main() {cli, err := clientv3.New(clientv3.Config{Endpoints:[]string{"localhost:2379", "localhost:23279", "localhost:33279"}, //etcd的集群的三个实例端口DialTimeout: 5*time.Second,})if err != nil {fmt.Println("connect failed, err:", err)return}fmt.Println("connect succ")defer cli.Close()ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)_, err = cli.Put(ctx, "/logagent/conf/", "samplevalue")cancel()if err != nil {fmt.Println("put failed, err:", err)return}ctx, cancel = context.WithTimeout(context.Background(), time.Second)resp, err := cli.Get(ctx, "/logagent/conf/")cancel()if err != nil {fmt.Println("get failed, err:", err)return}for _, ev := range resp.Kvs{fmt.Printf("%s:%s\n", ev.Key, ev.Value)}
}

执行后, 监控代码的执行结果为

转载于:https://www.cnblogs.com/baylorqu/p/9999405.html

[GO] go使用etcd和watch方法进行实时的配置变更相关推荐

  1. 实例化Bean的方法(基于xml配置)-http://blog.csdn.net/shymi1991/article/details/48153293

    实例化Bean的方法(基于xml配置) 标签: spring framework 2015-09-01 13:43 918人阅读 评论(0) 收藏 举报  分类: Spring FrameWork(7 ...

  2. linux环境变量配置的方法,Linux环境变量配置方法

    Linux上环境变量配置分为设置永久变量和临时变量两种.环境变量设置方法同时要考虑环境Shell类型,不同类型的SHELL设置临时变量方法和设置永久变量对应的配置文件不同.Linux环境变量本身配置过 ...

  3. [js] 写一个方法,实时验证input输入的值是否满足金额如:3.56(最多只有两位小数且只能数字和小数点)的格式,其它特殊字符禁止输入

    [js] 写一个方法,实时验证input输入的值是否满足金额如:3.56(最多只有两位小数且只能数字和小数点)的格式,其它特殊字符禁止输入 <body><input type=&qu ...

  4. 【前端学习】Git的安装和基本使用方法和环境变量配置 时光大魔王

    免责声明:原创文章,请勿抄袭:思维有限,敬请指正. 直达目录 Git下载 .安装步骤(完整图解) .基本使用方法 .环境变量配置 适用系统 Windows.Linux/Unix.macOS 官网简介 ...

  5. qiankun 两种集成微应用的方法(基于路由配置微应用、手动加载微应用)

    目录 1.qiankun 两种集成微应用的方法 2.基于路由配置微应用 1.1 registerMicroApps(apps, lifeCycles?) 注册微应用配置信息 参数 类型 用法 1.2 ...

  6. window 7 IIS配置方法 win7 Internet信息服务配置方法详解

    出处:http://www.huacolor.com/article/23431.html window 7 IIS配置方法 win7 Internet信息服务配置方法详解   1.依次打开 控制面板 ...

  7. etcd v3使用方法

    etcd 使用etcdv3 export ETCDCTL_API=3 设置.更新key # champly @ ChamPlydeMBP in ~/soft/etcd [22:40:55] $ ./e ...

  8. linux网站权限怎么设置好,linux网站权限设置方法,网站安全配置,linux网站权限...

    目的:为了保证网站不遭受木马入侵上传及修改文件. 相对安全的权限: 1.站点内所有目录和文件的用户和组都应该是root 2.所有目录权限默认的755 3.所有文件权限默认的644 (不能改文件) 1+ ...

  9. CentOS防火墙配置方法-详细解读如何配置CentOS防火墙

    iptables-save >/etc/sysconfig/iptables  (保存配置文件) 在重启iptables 服务或者在重启系统时候不会消失已经开启的端口 对CentOS防火墙的设置 ...

最新文章

  1. 26.Azure备份服务器(下)
  2. VS Code(Visual Studio Code)编辑器的常用设置
  3. webqq2协议分析和qq聊天机器人简单实现(转)
  4. 推自己的镜像到网易云
  5. 【大牛系列教学】靠着这份面试题跟答案
  6. python100天从新手到大师 pdf_Python100天从新手到大师(Python100Days)
  7. android+噪音测试,关于噪音测试App的选择与使用
  8. sql azure 语法_使用Azure门户监视安装了SQL Server的Azure计算机
  9. *第九周*数据结构实践项目一【猴子选大王(数组)】
  10. BOM 之 screen history
  11. visio自己画的图怎么填充_Visio怎么画直线并填充颜色?
  12. Loadrunner12实现手机APP压力测试
  13. Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册
  14. VMware Guided Consolidation
  15. git合并冲突【you have not concluded your merge】
  16. C语言:IF-ELSE的配对问题
  17. 2023北京叶黄素展/北京视力矫正设备展/北京眼睛医学康复展
  18. Flash扩展功能pulse-particle粒子系统的应用
  19. 微信隐藏功能:微信提现怎么免手续费?勤俭持家的福音,2步做到
  20. Qt之流式布局(FlowLayout)

热门文章

  1. 【贪心】【codeforces】651A Joysticks
  2. ExoPlayer 开发者指导
  3. java8 - 新的时间日期API示例
  4. PHP7 JIT 相关开源项目(JPHP)
  5. 【Storm篇】--Storm基础概念
  6. SVN工具的使用 和在Eclipse中安装GPD插件:(多步审批流,因此选择使用工作流(JBPM)来实现)...
  7. Python GUI漫谈
  8. 微软私有云分享(R2)5-域升级造成Hyper-V主机无法实时迁移
  9. 位运算及在java中的应用整理
  10. PHP程序员如何突破成长瓶颈(转)