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

python etcd-0.4.5安装使用踩坑记录,第1张

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

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

答:在本地段的配置文件/etc/etcd/etcd.conf修改字段ETCD_LISTEN_CLIENT_URLS、ETCD_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并不会发送,没搞太清楚,但是能够保持持续监听了!!)。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5679833.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存