🤡
2025-05-07
来自江苏
老师帮忙看看我第2个课后问题理解的是否有问题,请指正,list watch 实现应该分两个场景: 1. 在 apiserver 中,apiserver 去对接 etcd的接口实现 list-watch etcd,这里用的应该是 grpc 协议的流式响应 2. 以及client-go 库的源码中,client-go 对接 apiserver 的 restapi, 这里watch应该是http协议的chunk 传输 list-watch 分为两个步骤,先 list 获取资源列表,然后带着资源的版本号去 watch,watch 是个长连接,当某个资源版本号变化的时候,服务端会往客户端发送一个事件,这个事件中带着变化资源的详细信息,以及新的版本号,当某些情况下连接断开时,客户端可以基于版本号重新 watch,防止事件丢失