美文网首页Java
[zebra源码]流控设计

[zebra源码]流控设计

作者: holysu | 来源:发表于2021-05-03 01:43 被阅读0次

之所以要进行流量控制,是要避免业务应用流出量倾斜,超过分库能承载的压力

zebra的限流架构


image.png

粒度

  1. 指定要保护的db节点
  2. 指定要流控的应用ip
  3. 指定sqlId, 计算规则: sqlId = MD5(/appName/{mapper方法}).subString(0, 8)

限流策略:

  1. autoControl 自动限流, 失败率达到一定的阈值后触发 小于的时候逐步恢复(线性、指数)
  2. forceControl 强制限流,会对所有连接进行过滤,立即将流量降到下限; 用于紧急情况,需要手动开启和关闭

流程的处理收拢在 WallFilter(实现JdbcFilter的 processSql方法)

更详细的说明: 参见官方 zebra流量控制

相关文章

  • [zebra源码]流控设计

    之所以要进行流量控制,是要避免业务应用流出量倾斜,超过分库能承载的压力 zebra的限流架构 粒度 指定要保护的d...

  • 三、API安全机制-流控

    源码下载 一、API安全机制-流控API安全机制.png controller 流控过滤器 流控效果请求次数太多.png

  • zebra源码结构

    zebra-client(核心) : 除了监控外,几乎zebra所有核心功能,如读写分离、分库分表、就近路由、流量...

  • API 安全机制 | 流控

    流控 | 流量控制 流控要做在所有安全机制的最前头; 流控有针对整个集群的流控,有针对单个服务的流控; 流控 | ...

  • Sentinel源码解析四(流控策略和流控效果)

    引言 在分析Sentinel的上一篇文章中,我们知道了它是基于滑动窗口做的流量统计,那么在当我们能够根据流量统计算...

  • 装饰者设计模式-RecyclerView添加头部和底部

    引言 装饰者设计模式,装饰者设计模式在Android系统源码中也能经常见到,如IO流、ContextWrapper...

  • Druid的SQL Parser

    最近在看zebra的分库分表源码部分所使用的sql解析就是采用的SQL Parser,这里写个简单的举例方便新手理...

  • [zebra源码]分片语句ShardPreparedStatem

    主要过程包括: 分库分表的路由定位 sql语句的 ast 抽象语法树的解析 通过自定义 SQLASTVisitor...

  • 复习计划

    Zebra 练习使用 Maven 的对 zebra 进行分层管理 复习并行知识 学习 zookeeper 在集群中...

  • Java线程池

    线程池的状态 worker的设计 runWorker方法 任务的提交--execute 源码 调用流图 新增一个工...

网友评论

    本文标题:[zebra源码]流控设计

    本文链接:https://www.haomeiwen.com/subject/rcaxdltx.html