首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    client-go 之 Reflector 源码分析

    前面我们说了 Informer 通过对 APIServer 的资源对象执行 List 和 Watch 操作,把获取到的数据存储在本地的缓存中,其中实现这个的核心功能就是 Reflector,我们可以称其为反射器...Reflector 结构体的定义位于 staging/src/k8s.io/client-go/tools/cache/reflector.go 下面: // k8s.io/client-go/tools.../cache/reflector.go // Reflector(反射器) 监听指定的资源,将所有的变化都反射到给定的存储中去 type Reflector struct { // name 标识这个反射器的名称...func (r *Reflector) Run(stopCh <-chan struct{}) { klog.V(2).Infof("Starting reflector %s (%s) from...// k8s.io/client-go/tools/cache/reflector.go // watchHandler 监听 w 保持资源版本最新 func (r *Reflector) watchHandler

    1.8K31

    k8s client-go 的 Reflector 源码分析

    Reflector 的基本概念专业描述:Reflector(反射器)的主要功能是通过 List 和 Watch 操作,将 etcd 中的数据"反射"到本地存储(DeltaFIFO)中。...大白话:Reflector 是什么?想象一下 Reflector 就像是一个秘书,它的工作是帮你持续关注 Kubernetes 集群中的资源变化,然后把这些信息记录在本地笔记本(缓存)中。...Reflector 的结构Reflector 的核心结构定义在 tools/cache/reflector.go 文件中:type Reflector struct { // 反射器名称,默认为 文件...Reflector 的工作流程Reflector 通过 Run 方法启动工作:// Run 函数:不断地使用 ListAndWatch 方法获取所有对象和它们的变化// 当 stopCh 关闭时,Run...函数才会退出func (r *Reflector) Run(stopCh reflector %s (%s) from

    36000

    最终版 Reflector v1.0 (+简单的反流程混淆)

    看雪上拿到Reflector 7.0的源码,根据自己需要稍作修改,自己编译,就这么简单!...这里引入运算符优先级,不需要的时候不加圆括号 7,人工对上百个类进行反混淆,增加Reflector代码可读性,这次发布的版本也没有进行任何混淆 9,解除Reflector对部分产品反编译的限制,里面居然有国产的...我找到问题所在后,发现根本无法补救,因为Reflector可以说压根就没有AST!...当然,我的工具还有一些非常具有特色的功能,移植到Reflector是不可能了,因为Reflector的架构真的很糟糕!     同根生与Cecil,我很看好ILSpy!...最最后,Reflector的反流程混淆能力依然很差,这里推荐新生的ILSpy,它的开源和规范化,有取代Reflector的趋势!

    1K50
    领券