1) 一般限流
一般我们会选择 `漏斗桶/令牌桶` 算法来进行限流, 确实能够保护系统不被拖垮。其`核心思想`有两点:
1) 设置指标, 固定一个漏斗或者固定发送令牌的速度
2) 超过指标限制流量进入
根据这两个特点, 我们很容易推出会遇到什么`问题`:
1) 指标不好定, 设置流量的阈值是什么?
2) 当突然出现流量高峰的时候, 是需要人工介入去调整的
总结就是传统限流比较被动, 不能够自适应流量的变化
一般我们会选择 `漏斗桶/令牌桶` 算法来进行限流, 确实能够保护系统不被拖垮。其`核心思想`有两点:
1) 设置指标, 固定一个漏斗或者固定发送令牌的速度
2) 超过指标限制流量进入
根据这两个特点, 我们很容易推出会遇到什么`问题`:
1) 指标不好定, 设置流量的阈值是什么?
2) 当突然出现流量高峰的时候, 是需要人工介入去调整的
总结就是传统限流比较被动, 不能够自适应流量的变化
上一篇在提到缓存击穿的时候, 有一种解决办法就是布隆过滤器
布隆过滤器(英語:Bloom Filter)是1970年由布隆提出的。 它实际上是一个很长的二进制向量和一系列随机映射函数。 布隆过滤器可以用于检索一个元素是否在一个集合中。 它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难
上文介绍了 trace
的 由来, 以及简单应用, 今天我们就来实际用代码操作一下, 看看到底如何简单, 方便的在项目中接入 trace
一般我们会采用中间件的方式在web库中接入, 各大主流的web库(如gin
,iris
)都有自己的中间件方式, 整体上都是大同小异的, 由于作者的项目中使用的是iris
库, 今天我们采用 iris
来进行demo演示