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 条评论
登录 后参与评论

相关文章

来自专栏开源优测

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

2125
来自专栏FreeBuf

教你如何和使用这款强大的渗透平台-Xerosploit

写在前面的话 在这篇教程中,我们将教会大家如何使用Xerosploit。Xerosploit是一款渗透测试工具包,它的主要功能就是执行中间人攻击。它本身自带有多...

2769
来自专栏技术博文

linux 设置中文版man手册

作为CentOS 新手,看懂英文man固然重要,不过配置好中文man也可以让自己更快速地学习! 1. 下载中文man包 源码的网址:https://src.fe...

3535
来自专栏王亚昌的专栏

进程访问外部接口的超时设置

    早上发现WEB SRV上的FCGI进程全部挂住了,查看日志才发现是访问一个外部接口的时候因为失败率比较高,导致FCGI进程都堵在接收回包上了,因为超时设...

921
来自专栏老安的博客

docker 容积硬盘扩容小坑一个

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

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

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

1.1K6
来自专栏后端技术探索

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

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

1342
来自专栏Laoqi's Linux运维专列

自动化监控Zabbix之主机自动发现

2113
来自专栏Youngxj

微信透明头像

2935
来自专栏腾讯DevOps

Git远程库操作1

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

4114

扫码关注云+社区

领取腾讯云代金券