etcd租约及监听key
etcd中kv存储已经租约和监听的基本使.都说源码之下了无秘密,就不打字了. ``` package main import ( "context" "log" "time" "go.etcd.io/etcd/clientv3" ) func main() { var conf = clientv3.Config{ Endpoints: []string{"127.0.0.1:2380"}, DialTimeout: 5 * time.S...阅读全文
golang中Context详解
## 什么是Context Context通常被译作上下文,它是一个比较抽象的概念。一般理解为程序单元的一个运行状态、现场,上下上下则是存在上下层的传递,上会把内容传递给下。在Go语言中,程序单元也就指的是Goroutine。 每个Goroutine在执行之前,都要先知道程序当前的执行状态,通常将这些执行状态封装在一个Context变量中,传递给要执行的Goroutine中。上下文则几乎已经成为传递与请求同生存周期变量的标准方法。在网络编程下,当接收到一个网络请求Request,处理...阅读全文
golang chan详解
## 无缓冲chan 进和出都会阻塞. ## 有缓冲chan 先进先出队列, 出会一直阻塞到有数据, 进时当队列未满不会阻塞, 队列已满则阻塞. ## select 1. select 先遍历所有case, 所有channel表达式都会被求值、所有被发送的表达式都会被求值。求值顺序:自上而下、从左到右. 2. 当case没有阻塞则随机执行一个没有阻塞的case就退出select 3. 当所有case阻塞时, 则一直阻塞直到某个case解除阻塞, 但是如果有default则直接执行d...阅读全文