Go
文章平均质量分 65
Golang,Go
单林敏
心外无物,知行合一
CSDN 做为自己的简要易忘小知识点的记录,而自己的感想和长文一般发布在自己的个人blog,网址如下:
https://www.wolfdan.cn/
展开
-
不用共享内存来通信,而用通信来共享内存的思考探索
go之所以不用共享内存来通信,而用通信来共享内存,是因为其协程之间都在一个进程里面,那么管道的读取性能就很好。而如果是进程间的通信,很有可能会出现高性能进程间管道性能还是远不如共享内存的情况出现。因此和分布式存储中常用的用共享内存来代替rpc调用优化通信效率刚好是相反的。原创 2023-02-26 15:09:48 · 263 阅读 · 0 评论 -
helm安装etcd-ha的失败的原因是bitnami不支持ARM架构-过程分享
helm安装etcd-haexec /opt/bitnami/scripts/etcd/entrypoint.sh: exec format error原来bitnami不支持ARM架构的服务器.......我吐血了原创 2023-01-08 20:32:35 · 1148 阅读 · 0 评论 -
kubeadm安装k8s的一些避坑建议
k8s官网的安装文章中讲解一些版本依赖关系因此安装指定版本的k8s,就需要安装适应版本kubeadm!!!拿1.22版本举例子curl -s https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages | grep Version | awk '{print $2}'`kubeadm init`第一次之后,后续需要`kubeadm reset`,`rm /var/lib/etcd`进原创 2023-01-01 15:02:34 · 482 阅读 · 0 评论 -
sync.Map中amended和Delete删除中nil和expunged的理解
amended: 意思是被修改过的,为true就是表明dirty和readOnly中的map的数据不相同了readOnly中的map数据为nil: 就是正常的Delete()操作会让readOnly中的map数据值为nil,key还在readOnly中的map数据被标记为expunged(擦去;删掉): 就是只有在readOnly生成dirty数据时,如果遇到readOnly中标记为nil的值,则标记为expunged,并且不放在dirty中,没有对应key和值原创 2022-12-19 16:21:34 · 860 阅读 · 0 评论 -
../labgob: “../labgob“ is relative, but relative import paths are not supported in module modo
go module模式下不能使用相对路径来导入包。因此把../labgob改成mit/src/labgob即可原创 2022-11-07 14:42:44 · 2416 阅读 · 0 评论 -
新版本的protoc使用grpc容易遇到的两个坑,gen gRPC,mustEmbedUnimplementedHelloServer
新版本的protoc使用grpc容易遇到的两个坑,gen gRPC,mustEmbedUnimplementedHelloServer--go_out: protoc-gen-go: plugins are not supported; use 'protoc --go-grpc_out=...' to generate gRPCcannot use HelloService (variable of type helloService) as type hello.HelloServer in arg原创 2022-09-18 17:34:24 · 2208 阅读 · 0 评论 -
golangci-lint在vscode的使用,以及配置的一些探索
Go 语言自带套件为我们提供了静态代码分析工具 vet,它能用于检查 go 项目中可以通过编译但仍可能存在错误的代码。在维基百科是如下定义 lint 的:但是如果想要更多,就可以用golangci-lint。golangci-lint 是一个 linter 的集成框架。它集成了非常多的 linter,包括了上文提到的vet,合理使用它可以帮助我们更全面地分析与检查 Go 代码VScode配置golangci-lint VScode使用golangci-lint golangci-lint检测nil...原创 2022-06-15 20:00:15 · 5170 阅读 · 0 评论 -
golang类型断言理解[go语言圣经]
Go 语言中的类型断言是什么?理解关键点是:首先,x.(T), x必然是一个接口,接口有3个属性具体类型的属性1. 接口动态类型2. 接口的动态值3. 接口的方法集合T取值:x取值:如果为nil,会panic,类型断言是一个使用在接口值上的操作。语法上它看起来像x.(T)被称为断言类型,这里x表示一个接口的类型和T表示一个类型。一个类型断言检查它操作对象的动态类...原创 2022-06-10 10:35:51 · 437 阅读 · 0 评论 -
【Golang】怎样优雅的清空切片
这是个有意思的问题,在此之前,博主从来没有考虑过这个问题,直到最近,终究还是与 清空切片 相遇了。场景是这样的:需要批量从influxdb中查询数据,这个批量查询的查询条件是通过遍历一个结构体切片的字段,不断append,为了避免一次查询量过大,影响查询效率。代码上做了如下处理:var queryIDs []int64for _,v:= range vList{ queryIDs=append(queryIDs,v.ID) if len(queryIDs)>50{转载 2022-05-18 19:52:39 · 3062 阅读 · 0 评论