传统企业的电商 app 和网站,我理解流量说大不大说小不小 现有方案是老板做的,用了 istio 的 EnvoyFilter ,local 模式,我没实测过,他说效果还行
现在上了 Kong 网关,想把限流提前到这一层来做,问题就来了……
想知道这个方向有没有人了解,有啥建议吗?需要细节可以帖子里或单独详聊。 感谢
1
victorc 2022-06-17 10:33:23 +08:00
linux 自带 按域名单机限流,凑合能用
“流量稍大就被冲破了限制不住”-- 这个存疑,就是直接用 golang 里面的 rate 包写的限流器也能限制住,不能 100%精确限制,但是不存在冲破限制不住,你自己看看配置吧 |
3
mypchas6fans OP @victorc 我可能说得不准,所谓限制不住,比如每秒 1w 请求,我期望限制到 100 ,结果 5000 个都成功过去了。虽说没全部过去,但这跟没限好像也没啥区别……
|
4
mypchas6fans OP kong 开源版本的问题描述,我看了相关代码还在
https://qmsheng.github.io/2018/04/04/kong-rate-limiting/ |
5
Duluku 2022-06-17 10:46:50 +08:00 via iPhone
换 apisix 试试?
|
6
yukang 2022-06-17 10:47:06 +08:00
以前使用过,其实也就是 Nginx ?
https://catcoding.me/p/nginx-traffic-limit/ 我怀疑你说的不准是不是哪里没理解,前公司也用 kong ,看起来是没问题? 我记得有个问题是,如果你的 kong 有多个实例,要重新计算的。 |
7
Wien 2022-06-17 10:48:33 +08:00
之前做过一些业务限流如令牌桶,漏桶算法,无非是使用原子计数器,简单也好用。Kong 网关连这种基础的限流都不支持吗,这个我存疑,建议你再试试。
|
9
victorc 2022-06-17 10:54:29 +08:00
@mypchas6fans 一定是你配置有问题,限流器 设置限流 1000 ,最终放过了 1100 ,是正常的,但是你说 100 放 5000 ,哪完全不对的
|
10
mypchas6fans OP 感谢楼上各位,我可以再试试,不过我理解 kong 没有使用 nginx 自带的限流,而是自己实现了一个算法,然后才会有我在 4 楼说的问题
|
11
c0nstantien 2022-06-17 14:33:35 +08:00
试试 apisix 的 limit-req 插件
|
12
retanoj 2022-06-17 14:38:59 +08:00
|
13
yghack 2022-06-17 14:45:56 +08:00
APISIX +1
|
15
mypchas6fans OP |
16
9yu 2022-06-17 18:44:55 +08:00 via iPhone
@mypchas6fans
> 比如每秒 1w 请求,我期望限制到 100 ,结果 5000 个都成功过去了 目前有一个优化 Redis 限流器的、等待 Review 的 PR https://github.com/Kong/kong/pull/8751 如果你能在此帖或 Kong 的 Github 上贴上复现步骤,我非常愿意来跟进和在开源版本中修复这个问题 ( ^ω^ ) |
17
mypchas6fans OP @9yu 感谢,我会继续尝试然后和你联系
|