2026年5月12日

[AI生成] go为什么推荐使用errors.Is

摘要: 案例 package main import ( "errors" "fmt" "os" ) func main() { // 模拟:打开不存在的文件,产生原始错误 os.ErrNotExist err := openFile("not-exist.txt") // 1. 传统 == 判等:结果是 阅读全文

posted @ 2026-05-12 08:59 王景迁 阅读(3) 评论(0) 推荐(0)

2026年5月4日

[AI生成] go 构造Z状态进程

摘要: zombie.go //go:build linux package main import ( "fmt" "os" "syscall" "time" ) func main() { // 使用 syscall.ForkExec 直接创建子进程,这样我们可以更好地控制 // 子进程会运行一个简单的 阅读全文

posted @ 2026-05-04 15:55 王景迁 阅读(3) 评论(0) 推荐(0)

2026年5月3日

k8s ThreadSafeStore原理

摘要: 定义 cache.Indexers 索引列表,指定从单个资源对象中获取索引值的方法IndexFunc // IndexFunc knows how to compute the set of indexed values for an object. // 个人觉得这里返回值用string就可以了, 阅读全文

posted @ 2026-05-03 20:41 王景迁 阅读(4) 评论(0) 推荐(0)

[AI生成] k8s ThreadSafeStore使用案例

摘要: package main import ( "fmt" "sync" "k8s.io/client-go/tools/cache" ) // 1. 定义一个模拟的 K8s 资源结构体(如 Pod/Service) type MyPod struct { Name string Namespace s 阅读全文

posted @ 2026-05-03 19:40 王景迁 阅读(5) 评论(0) 推荐(0)

2026年5月2日

[AI生成] IPVS性能高于iptables原因

摘要: IPVS 是专为「四层负载均衡」设计的内核级专用组件,而 iptables 是通用的包过滤 / 防火墙框架。 两者的核心定位 IPVS (IP Virtual Server)集成在 Linux 内核的专用四层负载均衡模块(LVS 核心),唯一目标:高效将客户端流量转发到后端服务器。iptables基 阅读全文

posted @ 2026-05-02 11:30 王景迁 阅读(6) 评论(0) 推荐(0)

2026年4月25日

[AI生成] 基于Redis+go+lua脚本实现qps限流

摘要: 实现qps限流每次判断是否要限流时,发送lua脚本给redis执行,控制令牌数量,刚开始令牌桶是满的。key缓存时间是容量/速率(单位是s)+10s。value使用hashmap,记录当前令牌数和上次时间,时间是绝对时间的秒数,取整。 package main import ( "context" 阅读全文

posted @ 2026-04-25 20:09 王景迁 阅读(6) 评论(0) 推荐(0)

2026年4月24日

kube-apiserver缓存创建和释放的时机

摘要: kube-apiserver缓存创建时机1. 启动时全量获取etcd数据,watch数据变化,保存变化事件到RingBuffer中 kube-apiserver缓存删除时机(ThreadSafeStore)1. 最新数据被删除 kube-apiserver缓存老化时机(RingBuffer)1. 数 阅读全文

posted @ 2026-04-24 20:19 王景迁 阅读(5) 评论(0) 推荐(0)

2026年4月15日

跳表

摘要: 跳表是在 O(log(n)) 时间内完成增加、删除、搜索操作的数据结构。 https://leetcode.cn/problems/design-skiplist/description/ 算法步骤 查找过程中,每比较一次要么向下一层,要么到本层的右侧节点。每个节点在进行插入的时候,它的层数是由随机 阅读全文

posted @ 2026-04-15 08:57 王景迁 阅读(6) 评论(0) 推荐(0)

Redis zset操作

摘要: # 创建带有3个元素的zset1 zadd zset1 2.0 "a" 1.0 "b" 3.0 "c" # 从zset1中弹出分数最小的元素 zpopmin zset1 # 从zset2中弹出分数最大的元素 zpopmax zset1 # 查看所有元素,显示时带上分数 zrange zset1 0 阅读全文

posted @ 2026-04-15 08:29 王景迁 阅读(6) 评论(0) 推荐(0)

redis zset原理

摘要: zset即有序集合sorted set,用分数进行成员的从小到大的排序。 2种数据结构 ziplist 条件:元素个数小于128,而且所有元素小于64字节。即zset-max-ziplist-entries 128zset-max-ziplist-value 64 基于双向链表保存压缩列表节点,保存 阅读全文

posted @ 2026-04-15 08:18 王景迁 阅读(9) 评论(0) 推荐(0)

导航