go-grpc

go grpc 介绍 在底层通信协议上, 一般都是用 grpc , 如果是小型的系统,可以考虑直接使用 http接口 grpc 比较学术派,典型使用 IDL 来生成代码的 RPC框架 IDL (interface description/ definition

go-sql编程

sql driver.Valuer 和 sql.Sanner 实现 scan 方法 实现获取自定义类型 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 // JsonColumn 代表存储字段的 json

go-网络编程

go网络编程 net包是网络相关的核心库。 net包里面包含了 http、rpc等关键包 在net 里面,最重要的两个调用: Listen(network,addr string) 监听某个端口,等待客户

go-性能分析

go 性能分析 使用默认 pprof 工具 : go tool pprof cpu.prof 图形化界面依赖于graphviz 常用命令: top: 列出最高调用 list: 列出问题代码片段 peek: 查询具体函数的调用关系 web: 图形化

go-反射使用

go 反射使用 大多数编程语言系统都是类似的,会有类型声明,实际类型之类的分别 go 的反射里面,一个实例可以看出两个部分 值 实际类型 名字 对应 值信息 reflect.Value 类型

go-mutex使用

Mutex 实现细节 Mutex 实现细节: 自旋尝试,如果快速上锁成功就返回 自旋失败并且超过自旋次数,就进入阻塞队列等待唤醒 如果是进入阻塞队列等待这种和语言特性有

go-context使用

go context 的使用 context 包 – 核心方法 context 包的核心 API 有四个: • context.WithValue:设置键值对,并且返 回一个新的 context 实例 context.WithCancel context.WithDeadline context.Wi

etcd和Raft算法

raft算法分析 raft是什么? 算法还是协议? 两种说法都对,协议强调的是实现节点间通信过程, 算法一般在理论 一致性还是共识? 什么是一致性 论文中

k8s pod介绍

什么是 Pod Pod 是 k8s 里面能够被调度调度最小逻辑单元 (原子单元) 1个 Pod 里面可以运行多个容器 pod 共享哪些资源? IPC命名空间: Pod中的多个容器可以使用

go语言编程模式

go语言编程模式总结 面向对象最佳实践 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 type Shape interface { Sides() int Area() int } type Square struct { len int } func (s* Square) Sides() int { return 4 } func main() { s := Square{len: 5} fmt.Printf("%d\n",s.Sides()) } Square 并没
T