kubernetes源码之watch包filter.go阅读理解三

本文主要探讨kubernetes源代码中watch包的filter.go文件,详细解析了filterWatch的功能,包括对关键数据结构的分析和filteredWatch方法的探讨,旨在帮助读者深入理解kubernetes的监控机制。
摘要由CSDN通过智能技术生成

总体概括

filter.go按照官方文件的顺序看,那样有点好不好理解,按照这个概括看稍微容易点
func NewRecorder(w Interface) *Recorder 
创建一个新的记录器 创建的时候先实例化一个空的记录器,然后使用Filter对w进行过滤

func Filter(w Interface, f FilterFunc) Interface  
具体实现都是有filterWatch实现的,所以先实例化一个filterWatch,将w,和f传给所以先实例化一个filterWatch
然后在使用和f传给所以先实例化一个filterWatch的loop方法进行过滤

func (r *Recorder) record(in Event) (Event, bool)
将event追加到r的evnts中并返回

func (r *Recorder) Events() []Event
//复制Events

func (fw *filteredWatch) ResultChan() <-chan Event
func (fw *filteredWatch) Stop()
func (fw *filteredWatch) loop()过滤器的具体实现

出现的数据结构

//从字面上理解是过滤的watch,过滤什么呢?先看具体包含了哪些内容,incomming Interface类型,一个result管道,一个过滤函数
//带着疑惑往后面看,看看到底过滤了什么玩意,此处为疑问1
type filteredWatch struct {
    incoming Interface
    result   chan Event
    f        FilterFunc
}
//记录器,一个interface,一个锁,一个事件组。
type Recorder struct {
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值