摘要: 概述 在使用 Go 开发时几乎都会用到 net/http 标准库。但是,对库的内部实现不了解,仅限于会用。遇到问题容易懵,比如: 长连接和短连接有什么区别?具体什么实现原理? net/http 如何处理并发请求? net/http 有用到缓存吗?缓存用来干什么? ...... 单个问题各个击破,不如 阅读全文
posted @ 2025-12-07 14:18 胡云Troy 阅读(143) 评论(0) 推荐(0)
摘要: 概述 使用 Go 开发并发程序很容易,一个 go 关键字就可以启动协程处理任务。Go 创建一个 goroutine 只需要 2K 内存空间,并且 go 协程上下文信息仅存储在两个寄存器中,对于 Go 运行时来说,切换上下文特别快。 不过凡事不加限制就会出问题,如果不加节制的滥用 goroutine 阅读全文
posted @ 2025-11-24 12:08 胡云Troy 阅读(162) 评论(0) 推荐(1)
摘要: 概述 看了几篇同步,异步,阻塞和非阻塞的文章,感觉还是云里雾里的。本文结合自己的理解写几个例子加深印象,可能理解有误。大佬们可以帮忙批评指正。 个人理解同步/异步,阻塞/非阻塞是站在不同角度看的概念。 同步/异步:站在被调用方视角看,同步会执行调用方的请求,请求结束后返回执行结果给调用方。异步会先响 阅读全文
posted @ 2025-11-13 11:58 胡云Troy 阅读(21) 评论(0) 推荐(0)
摘要: 概述 sync.pool 对象池可以用来复用临时对象,减少内存压力,降低 GC 压力。 示例 基本用法 type Worker struct{} func (w *Worker) Name() string { return "worker" } func main() { workerPool : 阅读全文
posted @ 2025-11-09 18:35 胡云Troy 阅读(11) 评论(0) 推荐(0)
摘要: 0. 概述 在上一篇文章中介绍了 raft 读请求源码走读,本文继续结合 etcd-raft 源码介绍 raft 写请求流程。 需要说明的是,本文使用的是单节点集群环境,后续会补充多节点集群环境加以介绍。 1. 写请求流程 1.1 客户端写入请求 客户端通过 PUT 请求写入键值对请求: curl 阅读全文
posted @ 2025-11-06 17:57 胡云Troy 阅读(69) 评论(0) 推荐(0)
摘要: 概述 raft-example 提供了一个简化版的 KV 存储,本文围绕 raft-example 对读请求进行源码走读。 源码版本为 etcd release-3.6。 raftexample 程序结构 raftexample 程序结构如下所示: ➜ raftexample git:(releas 阅读全文
posted @ 2025-11-06 15:37 胡云Troy 阅读(14) 评论(0) 推荐(0)
摘要: 可读性 Go 中 if else 应遵循快乐路径,即先考虑(退出/返回/跳过)错误情况,否则代码层级嵌套过重,可读性会变差。 作用域 Go 中的作用域分为显式作用域和隐式作用域。显示作用域是花括号包裹的代码块,隐式作用域定义如下: 宇宙(Universe)代码块:所有Go源码都在该隐式代码块中,就相 阅读全文
posted @ 2025-08-01 14:39 胡云Troy 阅读(28) 评论(0) 推荐(0)
摘要: Go 源码编译流程 Go 编译源代码需要经过编译,链接过程。通过以下示例看 Go (Go 版本为 v1.24.1)语言是如何编译源码的。 首先,代码目录结构如下: ➜ demo1 git:(main) ✗ tree ./ ./ ├── cmd │ └── app1 │ └── main.go └── 阅读全文
posted @ 2025-07-27 22:18 胡云Troy 阅读(80) 评论(0) 推荐(0)
摘要: 介绍 Kubernetes Service 用于流量的负载均衡和反向代理,其通过 kube-proxy 组件实现。从服务的角度来看,kube-controller-manager 实现了服务注册,kube-proxy 实现了 kubernetes 集群内服务的负载均衡。 示意图如下: kube-pr 阅读全文
posted @ 2025-05-15 15:42 胡云Troy 阅读(457) 评论(1) 推荐(1)
摘要: 原创文章,欢迎转载,转载请注明出处,谢谢。 【目录】 Go runtime 调度器精讲(一):Go 程序初始化 Go runtime 调度器精讲(二):调度器初始化 Go runtime 调度器精讲(三):main goroutine 创建 Go runtime 调度器精讲(四):运行 main g 阅读全文
posted @ 2024-09-17 10:15 胡云Troy 阅读(227) 评论(0) 推荐(0)