分布式限流器之令牌桶实现

分布式限流器实现一般有计数器、滑动窗口、漏桶、令牌桶等实现算法。以下是 Go 的一些实现: 漏桶:https://github.com/uber-go/ratelimit 令牌桶:golang.org/x/time/rate 令牌桶 令牌桶按照一定速率将

Kustomize 管理 Kubernetes 集群

对比 在维护 Kubernetes 过程中,一开始是直接使用 kubectl 编辑集群资源,但毕竟需要归档编排,那么就需要一个配置管理工具。一开始尝试使用 Helm,但尝试过后发现我的使用场景并不适合 Helm。后来发现 Kustomize,那么先对比一下两款工具: Helm 依赖服务端(til

Mixedpaper 主题发布到 Hugo 官方仓库

最近将博客迁移到 Hugo,同时也将原来的主题移植到 Hugo。这次也提交到了 Hugo Themes。 Themes: https://themes.gohugo.io/hugo-theme-mixedpaper/ GitHub: https://github.com/wayjam/hugo-theme-mixedpaper 但是这个主题也用了很久了,是时候开始写新的了。 https://github.com/wayjam/hugo-theme-fluency

优化 Docker 构建时间

问题描述 今天看了一下我的一个 Go 的两个服务的构建时间,觉得不是非常满意。这两个服务分别为 server 端 和 worker 端,在使用了多阶段构建的情况下,每次全量编译出两个镜像需要 2.5min,由于两个服务基本属于通过代码结构可以共用代码的形式,只有 entrypoint 稍有不同,所以镜

解决 etcd 与 grpc 不兼容问题

今天遇到了一个 Golang 的依赖问题,在一个使用了 Protobuf 的项目,引入了 Prometheus 的 Package 之后编译时发现 etcd 报错: # github.com/coreos/etcd/clientv3/balancer/resolver/endpoint ../../go/pkg/mod/github.com/coreos/etcd@v3.3.18+incompatible/clientv3/balancer/resolver/endpoint/endpoint.go:114:78: undefined: resolver.BuildOption ../../go/pkg/mod/github.com/coreos/etcd@v3.3.18+incompatible/clientv3/balancer/resolver/endpoint/endpoint.go:182:31: undefined: resolver.ResolveNowOption # github.com/coreos/etcd/clientv3/balancer/picker ../../go/pkg/mod/github.com/coreos/etcd@v3.3.18+incompatible/clientv3/balancer/picker/err.go:37:44: undefined: balancer.PickOptions ../../go/pkg/mod/github.com/coreos/etcd@v3.3.18+incompatible/clientv3/balancer/picker/roundrobin_balanced.go:55:54: undefined: balancer.PickOptions 根据问题搜索到 issue:clientv3: grpc-go (v1.27.0) made API changes to balancer / resolver. #11563,依据里面的方法将 grpc 降级到 v1.2.6.0 require ( ... google.golang.org/grpc v1.26.0 ) 但又出现了