Sentinel-Go
文章平均质量分 93
捉虫大师
微信搜索”捉虫大师“
展开
-
Sentinel-Go 源码系列(三)滑动时间窗口算法的工程实现
要说现在工程师最重要的能力,我觉得工程能力要排第一。 就算现在大厂面试经常要手撕算法,也是更偏向考查代码工程实现的能力,之前在群里看到这样的图片,就觉得很离谱(大概率是假的~)。 算法与工程实现 在 Sentinel-Go 中,一个很核心的算法是流控(限流)算法。 流控可能每个人都听过,但真要手写一个,还是有些困难。为什么流控算法难写?以我的感觉是算法和工程实现上存在一定差异,虽然算法好理解,但却没法照着实现。 举个例子,令牌桶算法很好理解,只需给定一个桶,以恒定的速率往桶内放令牌,满了则丢弃,执行任务前原创 2021-12-20 13:01:09 · 327 阅读 · 0 评论 -
Sentinel-Go 源码系列(二)|初始化流程和责任链设计模式
上节中我们知道了 Sentinel-Go 大概能做什么事情,最简单的例子如何跑起来 其实我早就写好了本系列的第二篇,但迟迟没有发布,感觉光初始化流程显得有些单一,于是又补充了责任链模式,二合一,内容显得丰富一些。 初始化流程 初始化做了什么 Sentinel-Go 初始化时主要做了以下2件事情: 通过各种方式(文件、环境变量等)载入全局配置 启动异步的定时任务或服务,如机器 cpu、内存信息收集、metric log 写入等等 初始化流程详解 提供的 API 上节例子中,我们使用了最简单的初始化方式 f原创 2021-11-09 12:37:58 · 227 阅读 · 0 评论 -
Sentinel-Go 源码系列(一)|开篇
大家好呀,打算写一个 Go 语言组件源码分析系列,一是为了能学习下 Go 语言,看下别人是怎么写 Go 的,二是也掌握一个组件。 本次选择了 Sentinel-Go,一是对 Java 版本的 Sentinel 算是有一些了解,也在生产上落地过,二是感觉他的代码应该不会太复杂(仅仅是感觉),三是在云原生越来越热的趋势下,用 Go 实现的限流降级容错应该是比较通用的。 源码阅读本身是枯燥的,我尽量用容易理解的语言来描述,希望大家也多支持我的文章,点个赞、在看和关注就是对我最大的支持。 背景 Sentinel原创 2021-10-19 12:38:40 · 213 阅读 · 0 评论