摘要: 作用 Go 语言的 channel 是一种 goroutine 之间的通信方式,它可以用来传递数据,也可以用来同步 goroutine 的执行。 chan 是 goroutine 之间的通信桥梁,可以安全地在多个 goroutine 中共享数据。 使用 chan 实现 goroutine 之间的协作 阅读全文
posted @ 2024-12-24 17:48 daemon365 阅读(241) 评论(0) 推荐(0)
摘要: *** Go 代码基于 v1.23.0 *** 介绍 golang GC 垃圾回收机制 触发条件 用户调用 runtime.GC 主动触发 Go 程序检测到距上次 GC 内存分配增长超过一定比例时(默认 100%)触发 定时触发 (默认 2 min) 定时触发 代码在 src/runtime/pro 阅读全文
posted @ 2024-12-20 10:40 daemon365 阅读(51) 评论(0) 推荐(0)
摘要: 操作系统内存管理 操作系统管理内存的存储单元是页(page),在 linux 中一般是 4KB。而且,操作系统还会使用 虚拟内存 来管理内存,在用户程序中,我们看到的内存是不是真实的内存,而是虚拟内存。当访问或者修改内存的时候,操作系统会将虚拟内存映射到真实的内存中。申请内存的组件是 Page Ta 阅读全文
posted @ 2024-12-15 14:56 daemon365 阅读(270) 评论(0) 推荐(1)
摘要: 本身涉及到的 go 代码 都是基于 go 1.23.0 版本 传统 OS 线程 线程是 CPU 的最小调度单位,CPU 通过不断切换线程来实现多任务的并发。这会引发一些问题(对于用户角度): 线程的创建和销毁等是昂贵的,因为要不断在用户空间和内核空间切换。 线程的调度是由操作系统负责的,用户无法控制 阅读全文
posted @ 2024-12-08 17:19 daemon365 阅读(201) 评论(0) 推荐(0)
摘要: 为什么要做高可用 在生产环境中,kubernetes 集群中会多多个 master 节点,每个 master 节点上都会部署 kube-apiserver 服务,实现高可用。但是 client 访问 kube-apiserver 时,需要指定 ip 或者域名,这样会出现单点故障。官方推荐的做法是使用 阅读全文
posted @ 2024-12-07 14:18 daemon365 阅读(264) 评论(0) 推荐(1)
摘要: 简介 介绍及简单使用:https://www.cnblogs.com/daemon365/p/17690167.html 源码地址:https://github.com/etcd-io/bbolt page 因为 boltdb 是要落盘的,所以就要操作文件。为了提高效率,boltdb 会和其他数据库 阅读全文
posted @ 2024-06-15 16:12 daemon365 阅读(215) 评论(0) 推荐(0)
摘要: 介绍 在 etcd 中,watch 是一个非常重要的特性,它可以让客户端监控 etcd 中的 key 或者一组 key,当 key 发生变化时,etcd 会通知客户端。本文将介绍 etcd watch 的实现原理。 etcdctl watch /test # 当 /test 的值发生变化时,会输出如 阅读全文
posted @ 2024-06-10 14:17 daemon365 阅读(155) 评论(0) 推荐(0)
摘要: 什么是 MVCC MVCC 是 Multi-Version Concurrency Control 的缩写,即多版本并发控制。它是一种并发控制的方法,用于在数据库系统中实现事务的隔离性。MVCC 是一种乐观锁机制,它通过保存数据的多个版本来实现事务的隔禽性。在 etcd 中,MVCC 是用于实现数据 阅读全文
posted @ 2024-05-26 18:01 daemon365 阅读(324) 评论(0) 推荐(0)
摘要: istio 是什么 Istio 是一个开放源代码的服务网格,它为基于微服务的应用程序提供了一种统一的方式来连接、保护、监控和管理服务。Istio 主要解决的是在微服务架构中的服务间通信的复杂性问题,它通过提供服务间的负载均衡、服务到服务的认证、监控以及服务的弹性(例如重试、熔断等)来实现。 side 阅读全文
posted @ 2024-05-12 17:41 daemon365 阅读(423) 评论(0) 推荐(1)
摘要: 简介 kube-proxy 是 Kubernetes 集群中负责服务发现和负载均衡的组件之一。它是一个网络代理,运行在每个节点上, 用于 service 资源的负载均衡。它有两种模式:iptables 和 ipvs。 iptables iptables 是 Linux 系统中的一个用户空间实用程序, 阅读全文
posted @ 2024-05-08 23:20 daemon365 阅读(597) 评论(10) 推荐(0)