k8s源码分析-----Mux And Broadcaster

说明:此文章为腾讯云机器自动从本人csdn博客搬迁过来。是本人授权操作。

申明:无本人授权,不可转载本文。如有转载,本人保留追究其法律责任的权利。

龚浩华,QQ 29185807,月牙寂 道长

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

在k8s源码中,有大量的用到了Mux和Broadcaster。这两个东西本身是很简单的,但越来越觉得,不把这两个东西讲解下,担心会有很多的东西会讲不清楚。故还是讲解下比较好。

源码在k8s.io\kubernetes\pkg\util\config

Mux

先看下结构体以及构建的方法

我们再看下Merger

很简单Mux就两个东西,一个chan map还有一个Merger的interface。从用法上来看,其实Mux就是一个多生产者的合并。

怎么说呢,下面我们看看他的用法

上面的代码就是生产者的注册,并返回生产者传送物品的管道。

Mux通过chan map来保存传送管道,并对新的生产者都运行一个listen

listen很简单,就是一个中间的过程,将生产者传送过来的物品,通过Merge(合并操作)

Mux很简单,但在k8s有大量的应用。

Broadcaster

广播事件,这个在k8s中应用也非常的多。其实看下源码就知道其非常的简单

我们看下结构体以及构建方法

很简单就是一个listener的集合

listener其实就是一个带有OnUpdate的interface

下面我们看下用法

首先当然是注册listener

然后就是事件通知了。

总结

虽然这两个东西很简单,但应用非常多。如果对这不清楚的话,可能会对理解k8s源码造成一定的困难。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Youngxj

微信透明头像

2325
来自专栏魏艾斯博客www.vpsss.net

腾讯云服务器生成免费快照过程记录

腾讯云服务器目前提供免费的网站快照,这点相对于国内同行来说也是腾讯云的一个亮点。毕竟今时今日云服务器上面免费的东西不多了,人家也是真金白银运营的服务器。相对于阿...

8566
来自专栏猿天地

内网穿透工具-ittun

相信大家在工作和学习都避免不了快速外网调试。比如微信支付、支付宝支付,消息推送,短信发送,邮件发送等等。都需外网能访问你本地服务器进行调试。 软件下载地址:h...

4558
来自专栏开源优测

2000行代码,再不学习就老了

1545
来自专栏程序员的酒和故事

Golang中使用echo框架、MongoDB、JWT搭建REST API

生命不止,继续go go go !!! 之前介绍过golang中restful api的博客,是使用redis作为持久化,httprouter作为框架: Go...

5775
来自专栏后端技术探索

分布式系统一致性问题解决实战

商户提交表单数据至旺铺(deco项目,以下皆称为deco),deco需要接入poi系统进行装修内容的人工审核,详细流程见下图。

952
来自专栏前端杂货铺

svn迁移gitlab,构建前端打包发布流程

前端资源迁移     目前公司的前端资源托管在svn服务器上,由于团队的逐渐扩大,svn的分支管控越来越不灵活,而且对于以后前端流程一体化的处理支持不是很好,因...

3786
来自专栏腾讯DevOps

Git远程库操作1

选择SSH方式,请先配置好公钥私钥,参见:https://code.tencent.com/help/productionDoc/profile#ssh

2684
来自专栏marsggbo

coursera 视频总是缓冲或者无法观看的解决办法

注意!!!该方法针对Windows用户,亲测有效。 1.用管理员权限记事本打开host文件 2.将如下内容复制到文件末尾 52.84.246.90 ...

2065
来自专栏老安的博客

docker 容积硬盘扩容小坑一个

1323

扫码关注云+社区