go-singlefilght
singleflight
1 | golang.org/x/sync/singleflight |
singleflight
是 go 提供的一个扩展并发原语,主要是用来合并请求来降低服务压力。
code
1 | https://cs.opensource.google/go/x/sync/+/036812b2:singleflight/singleflight.go |
原理
实现了一个 Group 的 struct
1 | type Group struct { |
1 | golang.org/x/sync/singleflight |
singleflight
是 go 提供的一个扩展并发原语,主要是用来合并请求来降低服务压力。
1 | https://cs.opensource.google/go/x/sync/+/036812b2:singleflight/singleflight.go |
实现了一个 Group 的 struct
1 | type Group struct { |
使用 alpine 构建 Ddockerfile ,导致 docker 打包失败,错误如下:
1 | fetch https://mirrors.aliyun.com/alpine/v3.13/main/x86_64/APKINDEX.tar.gz |
sha256 算法是常用的加密算法,这里有一份 golang 的实现
1 | brew cask install osxfuse |
系统偏好设置-> FUSE
##Goroutine 内存占用
下面是一个创建 goroutine 什么也不干,对内存的占用打印。说明创建 goroutine 的成本非常低。
1 | num:1 mem: 0.062MB average:64.000kb |
以下是创建代码:
Tcp 连接中,Server 监听固定端口,Client 发起主动连接。 经过三次握手后建立 Tcp 连接。
client 每次请求,如果不固定端口,系统会选用一个空闲端口。该端口是独占,不能和其他 Tcp 连接共享。本地端口最大数为 65536 ,0 有特殊含义(预留,系统指定动态生成的端口),其他的全作为 client 情况下 ,最大连接数为65535 。 除去系统服务使用的端口,能够使用的会比这个少一些,1024 一下的端口通常为保留端口。
这是给团队写的 jenkins 会出现问题的说明,简单的描述了 jenkins 使用中会出现的问题,以及应对方法。当然最好的应对方法是没有问题。
jenkins 自动化的命令运行引擎,pipeline (流水线) 是按照既定的逻辑来执行 jenkinsfile 中的代码。
也就是说它只是一个流程执行引擎,所有的命令都需要依赖其它软件包。 比如 npm ,maven, ansiable 等等。当使用 docker 来启动 jenkins 时,需要在 dockerfile 里面加上打包需要的依赖。
Sysctl 用于配置运行时的内核参数,正常情况下修改 /etc/sysctl.conf
. 然后执行 sysctl -p
就能够设置成功。
当使用 Docker 启动服务时,使用 sysctl -p 来配置 docker 的参数时会出现问题。比如
1 | sysctl: cannot stat /proc/sys/net/core/rmem_max: No such file or directory |