「家庭娱乐」N1刷 Armbian 做家庭服务器

前言

由于想找点有趣的事情做,而且一直想玩玩家庭服务器,所以捡了一台 N1 做家庭服务器。由于卖家已经刷过 CoreELEC 了,所以不用再做降低等操作。

N1 作为去年矿渣的优秀代表,其硬件素质是非常过硬。N1 所用的 SOC 方案是晶晨 S905D,机器运行内存 2G,内置闪存 8G,相对于普通的 S905M,增加了 4K 60Hz 输出、VP9 硬解、HDR 以及千兆网卡。只是 USB 口都是 2.0,有点拉跨。并且在大神们的挖掘下玩法非常多样,既有传统 Armbian、也有专项应用系统:下载专用Linux 小钢炮、影音 CoreELEC、游戏 EmuELEC。玩家可以根据自己的喜好刷入对应的系统。

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

分布式限流器实现一般有计数器、滑动窗口、漏桶、令牌桶等实现算法。以下是 Go 的一些实现:

令牌桶

ratelimit-令牌桶

令牌桶按照一定速率将令牌放入桶中,桶有最大容量,桶满时,不再新增令牌。如果桶中令牌少于申请的令牌数量,则会被限流,否则申请令牌成功。令牌桶限制的是平均流入速率(允许突发请求,只要有令牌就可以处理,支持一次拿 N 个令牌),并允许一定程度突发流量。

Kustomize 管理 Kubernetes 集群

对比

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

优化 Docker 构建时间

问题描述

今天看了一下我的一个 Go 的两个服务的构建时间,觉得不是非常满意。这两个服务分别为 server 端 和 worker 端,在使用了多阶段构建的情况下,每次全量编译出两个镜像需要 2.5min,由于两个服务基本属于通过代码结构可以共用代码的形式,只有 entrypoint 稍有不同,所以镜像的构建步骤只有略有不同。观察 docker 镜像的构建日志发现,即便是相同构建命令的 commit 也并没有 use-cache,于是感觉还是有优化空间的。