理解kubernetes’ tools/cache包: part 5

part 4中,我们在DeltaFIFO结构中单独查看了一些细节,它将逻辑“将此对象添加到请求”请求转换为“添加表示对象添加的事件”操作。 这结束了我们对tools/cache包的结构演练。 从行为的角度来看,显然还有很多东西要看,但是现在值得停下来展示全局。
在下图中,您将看到一个毫无歉意的粗糙和简单混合的,UML,一些Java概念,一些Go类型名称 - 简而言之,一个大杂烩的符号应该证明有助于显示整个包在高水平。 同样,这不是Go结构,Java类或其他任何东西的一对一表示,而是有用的名词和框和线的组合,勾勒出工具/缓存包的一般形状,并希望给出一个 整个事物的可用结构概述:
all
一般而言,我可能不一致,橙色框表示构成用户希望直接理解或使用的tools/cache框架的概念或结构。 粉色框表示实现相关。 浅蓝色框表示与Kubernetes直接相关的事物。 我已经尝试将UML正确用于其他一切。 大多数(但不是全部)名称都与Go代码足够接近,以一种方式或另一种方式搜索它们应该可以帮助您浏览所有.go文件。
要处理这张大图,你可以打印出来并阅读本系列的前几篇文章,从part 1开始。用SharedIndexInformer概念/类开始图示并按照箭头操作。
在文本上,SharedIndexInformer“是一个”SharedInformer,它管理一个Controller,间接一个Reflector,它使用Kubernetes客户端和ListerWatcher实现来更新特定类型的Store,即DeltaFIFO,其逻辑事件代表修改,添加和删除列出和观看的Kubernetes资源。它从getStore()方法返回的Store,实际上是一个Indexer,通过Go代码中的缓存类型实现。(特别注意,它的getStore()方法返回其getIndexer()方法的返回值,这意味着调用者有权访问的Store不是它作为实现关注内部更新的DeltaFIFO。还记得在如果您手中有任何类型的Store,只有特定函数的调用。)
在本系列的下一篇中,我们将介绍整个tools/cache包的线程和行为问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这段代码是用来设置环境变量的,具体解释如下: ``` export PATH=$PWD/subtools/kaldi/utils/:$KALDI_ROOT/tools/openfst/bin:$PWD:$PATH ``` - `export PATH=` 表示将后面的路径添加到环境变量 PATH 中。 - `$PWD/subtools/kaldi/utils/` 是一个路径,指的是当前工作目录下的 `subtools/kaldi/utils/` 目录。 - `$KALDI_ROOT/tools/openfst/bin` 是另一个路径,指的是 Kaldi 工具箱所依赖的 OpenFST 库的二进制文件目录。 - `$PWD` 表示当前工作目录。 - `$PATH` 是系统默认的环境变量,表示可执行文件的搜索路径。 所以整个命令的意思是将当前工作目录下的 `subtools/kaldi/utils/` 目录和 Kaldi 工具箱所依赖的 OpenFST 库的二进制文件目录添加到系统默认的环境变量 PATH 的前面,这样在执行命令时就可以直接调用这些路径下的可执行文件。 ``` [ ! -f $KALDI_ROOT/tools/config/common_path.sh ] && echo >&2 "The standard file $KALDI_ROOT/tools/config/common_path.sh is not present -> Exit!" && exit 1 ``` 这一行代码是用来判断 `$KALDI_ROOT/tools/config/common_path.sh` 是否存在,如果不存在则输出错误信息并退出。 ``` . $KALDI_ROOT/tools/config/common_path.sh ``` 这一行代码是用来执行 `$KALDI_ROOT/tools/config/common_path.sh` 脚本文件,该文件定义了一些环境变量和函数,供 Kaldi 工具箱使用。其中 `.` 表示在当前 shell 环境中执行脚本文件,这样设置的环境变量和函数会在当前 shell 环境中生效。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值