
golang
必须手动安装官方Go二进制包(如go1.22.5.linux-amd64.tar.gz)至/usr/local/go,禁用系统包管理器;配置GOROOT、GOPATH和PATH;启用模块模式并设置GO...
Go语言中slice、map、chan等类型赋值时共享底层数据,因其实现含指针字段;range遍历得元素副本,修改无效;for循环变量复用导致闭包捕获同一地址,Go1.22+默认修复。
defer在函数退出前统一执行,而非return后;return实为赋值执行defer跳出三步;命名返回值可被defer修改,匿名返回值不可;panic也会触发defer;defer参数注册时求值;闭...
Go函数用func声明而非定义,无hoisting、无默认参数、无重载;参数与返回值类型均置于变量名后;支持多返回值、匿名函数与闭包;方法需通过实例调用,接收者影响可调用性。
Go微服务配置管理核心是运行时可变、环境隔离、变更可控,需用etcdclientv3Watch监听+校验+热加载+降级,禁用viper远程模式,路径前缀实现环境隔离,关键配置须预检与回滚。
Go应用自身不提供负载均衡,需依赖Kubernetes的Service、Probe、Ingress等机制实现;健康检查必须正确暴露/healthz端点并返回200–399状态码;服务调用应使用DNS域...
GoHTTP中间件本质是func(http.Handler)http.Handler的链式调用,通过包装Handler实现前置/后置逻辑,需正确调用next.ServeHTTP(w,r),并用自定义R...
微服务边界划分应按限界上下文而非功能粒度,避免调用风暴;须专属数据库、事件驱动同步;gRPC错误需语义化映射;Gomodule须显式锁定版本。
最稳妥的GoAPI网关基础转发方案是使用标准库httputil.NewSingleHostReverseProxy,需正确配置Director重写URL和Host、ModifyResponse补全X-...
用time.Ticker实现固定窗口限流简单但易超限,因窗口切换存在竞态和时钟漂移;推荐使用golang.org/x/time/rate的漏桶模型,支持突发、线程安全且性能优;分布式场景需Redis等...