无论是无缓冲通道,还是有缓冲通道,都存在阻塞的情况,教你一招再也不遇到channel阻塞的问题。 这篇文章会介绍,哪些情况会存在阻塞,以及如何使用select解决阻塞。 阻塞...
今天遇到了一个小坑:使用etcdv3的时候,报了这么一堆错误 # github.com/coreos/etcd/clientv3/balancer/resolver/endp...
作为同是分布式架构的redis和es集群,两者的理念相同,都是为了解决高可用,提高容灾能力。但两者在具体设计方面还是有些许差异。 redis集群:数据存放在节点内的一组或多组...
场景一: strs := []string{"Tom", "Jerry", "Ray"} for _, v := range strs { go func()...
es集群由多个数据节点和一个主节点(可以有多个备选主节点)组成。其中数据节点负责数据存储和具体操作,如执行搜索、聚合等任务,计算压力较大。主节点负责创建、删除索引、分配分片、...
以下是整理出的5个典型golang死锁场景: 1、主线程在通道写入之前,先行读取 func main() { ch := make(chan int[, n]) fmt.Pr...
G M P模型 G —— goroutinue对象,经go语句创建 M —— 系统线程,和P关联后运行G,上限10000 P —— 调度器,和M关联后运行G,数量由 runt...
golang中的slice是引用类型,比如下面这段代码: s1 := []int{1,2,3,4} s2 := s1 s1[0] = 100 fmt.Printf...
ps. 以下请求体对应es 6.x版本下的使用 假设我们有一个如下mapping的索引 { "properties": { "id": { "type": "keyword"...
众所周知,Mysql在InnoDB下有四种隔离级别: 未提交读(Read Uncommitted) 提交后读(Read Committed) 可重复读(Repeatable ...
首先介绍一下什么是正则表达式里的“零宽断言”。 零宽断言,是指这段正则匹配的不是某个字符串,而是字符串中的某个位置。 以下这些都属于“零宽断言”: (?!....)匹配不含有...
校验一个合法的日期格式,如:2020-02-29合法,而2019-02-29就不合法(因为不是闰年)。 要分开考虑全部的情况: 1、大月份31天:\d{4}\-(0?[135...