python etcd-0.4.5安装\使用踩坑记录

1、如何实现在内网的任意终端连接、监听本地server(使用etcdctl、curl命令时可以抓包)?

答:在本地段的配置文件/etc/etcd/etcd.conf修改字段ETCD_LISTEN_CLIENT_URLSETCD_ADVERTISE_CLIENT_URLS为"http://ip:port"的形式,多个采用逗号分开。保存后还需要重启服务:

systemctl restart etcd

在其他终端采用如下命令可以实现get、set、watch、update等操作(分开的初衷是为了抓包观察交互过程,不修改配置文件、在本地终端的话可以省略--endpoints参数,默认是localhost,127.0.0.1:2379)

etcdctl --endpoints http://xx.xx.xx.xx:2379 get /keys/example

2、调用watch函数,已经使用了wait=True,为何不能实现持续的阻塞和监听?

答:该python包的watch实现还是通过调用read函数发送请求,应当在参数里面加上timeout=0,才会持续阻塞。etcdctl和curl来监听时,可以实现持续监听,用wireshark抓包发现,client和server的交互会每隔30s向对方发送tcp探活包([tcp keep-alive]),当我们自己调用函数watch时,需要加上timeout=0参数才能实现持续发送tcp探活包(抓包发现这时只有server发送,client并不会发送,没搞太清楚,但是能够保持持续监听了!!)。

以上个人经验记录,仅供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值