随笔分类 -  Go

Go
摘要:本文阅读代码链接:https://github.com/kubernetes/client-go/tree/release-1.30 下面代码全部在 util/workqueue 文件中: 一. workqueue基本概念 在 client-go 的 util/workqueue 包中,主要有三个队 阅读全文
posted @ 2025-03-18 00:36 rxg456 阅读(113) 评论(0) 推荐(0)
摘要:本文阅读代码链接:https://github.com/kubernetes/client-go/tree/release-1.30 下面代码全部在 tools/cache/delta_fifo.go 文件中: 一. DeltaFIFO 的基本概念 DeltaFIFO 是 client-go 中的核 阅读全文
posted @ 2025-03-11 21:30 rxg456 阅读(94) 评论(0) 推荐(0)
摘要:Reflector 是 Kubernetes client-go 中的一个核心组件,负责从 API Server 获取资源对象并将其同步到本地缓存中。本文将解析 Reflector 的实现原理及源码细节。 本文阅读代码链接:https://github.com/kubernetes/client-g 阅读全文
posted @ 2025-03-10 23:06 rxg456 阅读(115) 评论(0) 推荐(0)
摘要:一、核心实现逻辑 通过 ctrl.Result 的 定时重试(RequeueAfter) 和 状态标记(Status Conditions) 组合,实现对异步操作全生命周期管理。 分阶段状态管理 // 状态类型定义 type Phase string const ( PhaseCreating Ph 阅读全文
posted @ 2025-03-06 00:17 rxg456 阅读(89) 评论(0) 推荐(0)
摘要:CEL是一种非图灵的完整表达式语言,被设计为快速、可移植和安全执行。CEL可以单独使用,也可以嵌入到一个更大的产品中。 阅读全文
posted @ 2022-06-16 23:14 rxg456 阅读(441) 评论(0) 推荐(0)
摘要:一种管理goroutine组件生命周期的通用机制,它在任何需要将多个goroutines作为一个单元整体进行协调的情况下都很有用 阅读全文
posted @ 2022-05-25 02:08 rxg456 阅读(54) 评论(0) 推荐(0)
摘要:Context通过`With系列函数`生成Context树,把相关的Context关联起来,这样就可以统一进行控制。一声令下,关联的Context都会发出取消信号,使用这些Context的协程就可以收到取消信号,然后清理退出。在定义函数的时候,如果想让外部给你的函数发取消信号,就可以为这个函数增加一个Context参数,让外部的调用者可以通过Context进行控制,比如下载一个文件超时退出的需求。 阅读全文
posted @ 2022-05-24 23:26 rxg456 阅读(149) 评论(0) 推荐(0)
摘要:Traefik插件架构使开发人员可以轻松创建新插件、修改现有插件以及与 Traefik 社区共享插件 阅读全文
posted @ 2022-05-15 00:37 rxg456 阅读(237) 评论(0) 推荐(0)
摘要:插件支持是一项强大的功能,允许开发人员向 Traefik 添加新功能并定义新行为。例如,插件可以修改请求或标头、发出重定向、添加身份验证等,提供与 Traefik中间件类似的功能 阅读全文
posted @ 2022-05-13 00:28 rxg456 阅读(137) 评论(0) 推荐(0)
摘要:附加到路由器的中间件是一种在请求发送到您的[服务](https://doc.traefik.io/traefik/routing/services/)之前(或在服务的答案发送到客户端之前)调整请求的方法。 Traefik 中有几个可用的中间件,有的可以修改请求、headers,有的负责重定向,有的添加认证等等。 使用相同协议的中间件可以组合成链以适应各种场景。 阅读全文
posted @ 2022-05-12 00:06 rxg456 阅读(157) 评论(0) 推荐(0)
摘要:附加到路由器的中间件是一种在请求发送到您的[服务](https://doc.traefik.io/traefik/routing/services/)之前(或在服务的答案发送到客户端之前)调整请求的方法。 Traefik 中有几个可用的中间件,有的可以修改请求、headers,有的负责重定向,有的添加认证等等。 使用相同协议的中间件可以组合成链以适应各种场景。 阅读全文
posted @ 2022-05-11 23:33 rxg456 阅读(813) 评论(0) 推荐(0)
摘要:附加到路由器的中间件是一种在请求发送到您的[服务](https://doc.traefik.io/traefik/routing/services/)之前(或在服务的答案发送到客户端之前)调整请求的方法。 Traefik 中有几个可用的中间件,有的可以修改请求、headers,有的负责重定向,有的添加认证等等。 使用相同协议的中间件可以组合成链以适应各种场景。 阅读全文
posted @ 2022-05-09 01:24 rxg456 阅读(481) 评论(0) 推荐(0)
摘要:Traefik是一个开源的Edge Router,它使发布你的服务成为一种有趣和简单的体验。它代表你的系统接收请求,并找出负责处理这些请求的组件。 除了它的许多功能外,Traefik的与众不同之处在于它能自动为你的服务发现正确的配置。当Traefik检查你的基础设施时,神奇的事情发生了,它发现了相关信息,并发现哪个服务为哪个请求服务。 Traefik原生兼容每一种主要的集群技术,如Kubernetes、Docker、Docker Swarm、AWS、Mesos、Marathon等;并且可以同时处理许多集群。(它甚至适用于在裸机上运行的传统软件)。 有了Traefik,就不需要维护和同步一个单独的配置文件:一切都会自动、实时地发生(没有重新启动,没有连接中断)。有了Traefik,你可以把时间花在开发和部署新功能上,而不是配置和维护其工作状态上。 阅读全文
posted @ 2022-05-06 19:17 rxg456 阅读(131) 评论(0) 推荐(0)
摘要:基准测试就是在一定的工作负载之下检测程序性能的一种方法 阅读全文
posted @ 2022-05-04 18:30 rxg456 阅读(172) 评论(0) 推荐(0)
摘要:作为golang人我们一定要养成写单元测试的习惯,这样才能保证我们交付质量,也称为TDD(Test Driven Development)测试驱动开发 阅读全文
posted @ 2022-05-04 18:24 rxg456 阅读(156) 评论(0) 推荐(0)
摘要:goroutine的管理 阅读全文
posted @ 2022-05-04 18:20 rxg456 阅读(208) 评论(0) 推荐(0)
摘要:协程阻塞,未能如期结束 阅读全文
posted @ 2022-05-04 18:15 rxg456 阅读(277) 评论(1) 推荐(0)
摘要:go多路复用函数以netpoll为前缀,针对不同的操作系统做了不同封装,以达到最优的性能 阅读全文
posted @ 2022-05-04 18:02 rxg456 阅读(270) 评论(0) 推荐(0)
摘要:多协程并发修改同一块内存,产生资源竞争 阅读全文
posted @ 2022-05-04 17:53 rxg456 阅读(76) 评论(0) 推荐(0)
摘要:协程最大优势在于"轻量级",可以轻松创建上百万个而不会导致系统资源衰竭,而线程和进程通常最多也不能超过1万。 阅读全文
posted @ 2022-05-04 17:50 rxg456 阅读(75) 评论(0) 推荐(0)