ubuntu安装helm

笔记  Go 

curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/nullsudo apt-get install apt-transport-ht

minikube创建三个node并传入http代理环境变量,防止pullbackoff

笔记  Go 

#!/bin/zshminikube start --docker-env HTTP_PROXY=http://192.168.3.28:2080 \ --docker-env HTTPS_PROXY=http://192.168.3.28:2080 \

Golang wire依赖注入

笔记  Go 

基础概念wire有两个基础概念,Provider(构造器)和Injector(注入器)。Provider实际上就是创建函数,大家意会一下。我们上面InitMission就是Injector。每个注入器实际上就是一个对象的创建和初始化函数。在这个函数中,我们只需要告诉wire要创建什么类型的对象,这个

Golang闭包使用场景

笔记  Go 

Golang闭包使用场景保存中间态package mainimport "fmt"// 保存中间态func increment() func() int { count := 0 return func() int { count++ retu

Golang面试题收集

笔记  Go 

Golang面试题收集答: 不会for range在循环前已经获取了可迭代变量的可迭代次数了不会死循环,for range是golang的语法糖,在循环开始前会获取切片长度,然后再执行切片长度次数的循环如果for 循环select时候,通道关闭了,那么每次都会执行这个case如果select中的ca

Mysql为什么选择B+树作为索引结构?

mysql  笔记  Go 

参考: https://juejin.cn/post/7412893752090181642?from=search-suggestMysql为什么选择B+树作为索引结构?减少磁盘I/O次数B+树每个节点可以存储大量键值,使得树的高度极低数据库数据存储在磁盘上,每次查询磁盘I/O次数直接影响性能,B

悲观锁和乐观锁

笔记  Go 

悲观锁和乐观锁悲观锁核心思想假设并发冲突一定会发生,因此在访问共享资源的时候,先加锁,确保操作期间数据不会被其它线程修改。特点提前枷锁: 操作前获取锁,操作后释放锁阻塞等待: 如果锁被占用,其它线程会阻塞或者自旋等待,直到锁释放强一致性: 保证操作期间数据的独占性,适合写多少读多少的场景典型实现互斥

Golang基本同步原语sync.Pool

笔记  Go 

Golang基本同步原语sync.Poolsync.Pool 是 Go 标准库 sync 包中的一个结构,用于管理一组可重用的对象池。通过复用对象,减少内存分配和垃圾回收的开销,从而提升程序的性能和效率。以下是对 sync.Pool 的详细讲解,包括其使用案例和使用场景。sync.Pool 的大小是

Golang 基本同步原语sync.Once

笔记  Go 

Golang 基本同步原语sync.Onecesync.Once 是 Go 语言中一个简单但强大的同步原语,用于确保某个操作在并发场景下只执行一次。它常用于延迟初始化、单例模式、全局配置加载等场景基本用法sync.Once 的核心方法是 Do(f func()),传入的函数 f 只会执行一次,即使多

Golang 并发基本同步原语 sync.Cond

笔记  Go 

Golang 基础之并发基本同步原语sync.Cond条件变量Cond类型原型type Cond struct { // L 是在观察或改变状态时保持的 L Locker // 包含过滤或未导出的字段}​func NewCond(l Locker) *Condfunc (c *Cond) Br