这个案例主要是演示自定义限流算法应该如何设计与实现。
在当下的面试环境里面,会背八股文,会使用一些标准的、基础的限流算法没有办法让你赢得任何竞争优势。但是如果你能够针对业务场景来设计一些很有特色的限流算法,那么在面试中就能够赢得很大的竞争优势。
这个案例就是最简单的一种根据业务场景来设计的限流算法,它针对的是内存。类似地,你可以设计针对 CPU 的,也可以设计针对多个指标采集的数据的算法。
你可以将这个案例融入到你的面试项目中,作为你打造高可用、擅长解决业务问题人设的一部分佐证案例。
首先你需要先看看 微服务限流面试题,尤其是里面提到的自定义限流算法的部分。整个代码在 interview-cases/case11_20/case17 at main · meoying/interview-cases (github.com)。注意如果你不是 GO 语言开发,你需要事先了解一下你用的编程语言有什么开源库可以拿到机器上的内存使用量。
这个限流算法的实现非常简单,就是: