K8s中的workQueue机制如何简单概述?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2082个文字,预计阅读时间需要9分钟。
一、workQueue分类+在Informer最后将资源对象已写入到事件回调函数中,此后我们直接处理这些数据即可,但使用golang中的channel来处理会存在处理效率低,存在数据大并发量的问题。
一、workQueue分类
在Informer最后将资源对象已经写入到事件回调函数中,此后我们直接处理这些数据即可,但是我们使用golang中的chanel来处理会存在处理效率低,存在数据大并发量,数据积压等其他异常情况,为此client-go单独将workqueue提出来,作为公共组件,不仅可以在Kubernetes内部使用,还可以供Client-go使用,用户侧可以通过Workqueue相关方法进行更加灵活的队列处理,如失败重试,延迟入队,限速控制等,实现非阻塞异步逻辑处理。
WorkQueue 支持 3 种队列,并提供了 3 种接口,不同队列实现可应对不同的使用场景,分别介绍如下。
- Interface:通用队FIFO 队列接口,先进先出队列,并支持去重机制。
- DelayingInterface:延迟队列接口,基于 Interface 接口封装,延迟一段时间后再将元素存入队列。
- RateLimitingInterface:限速队列接口,基于 DelayingInterface 接口封装,支持元素存入队列时进行速率限制。
本文共计2082个文字,预计阅读时间需要9分钟。
一、workQueue分类+在Informer最后将资源对象已写入到事件回调函数中,此后我们直接处理这些数据即可,但使用golang中的channel来处理会存在处理效率低,存在数据大并发量的问题。
一、workQueue分类
在Informer最后将资源对象已经写入到事件回调函数中,此后我们直接处理这些数据即可,但是我们使用golang中的chanel来处理会存在处理效率低,存在数据大并发量,数据积压等其他异常情况,为此client-go单独将workqueue提出来,作为公共组件,不仅可以在Kubernetes内部使用,还可以供Client-go使用,用户侧可以通过Workqueue相关方法进行更加灵活的队列处理,如失败重试,延迟入队,限速控制等,实现非阻塞异步逻辑处理。
WorkQueue 支持 3 种队列,并提供了 3 种接口,不同队列实现可应对不同的使用场景,分别介绍如下。
- Interface:通用队FIFO 队列接口,先进先出队列,并支持去重机制。
- DelayingInterface:延迟队列接口,基于 Interface 接口封装,延迟一段时间后再将元素存入队列。
- RateLimitingInterface:限速队列接口,基于 DelayingInterface 接口封装,支持元素存入队列时进行速率限制。

