上周我们发布了 v0.4.0 版本,增加了限流熔断功能,现对这两个功能做如下说明。

限流

DBPack 限流熔断功能通过 filter 实现。要设置限流规则,首先要定义 RateLimitFilter

    - name: rateLimiterFilter
kind: RateLimiterFilter
conf:
# 1000 requests per second
insert_limit: 1000
# 1000 requests per second
update_limit: 1000
# 1000 requests per second
delete_limit: 1000
# 1000 requests per second
select_limit: 1000

支持对增删改查请求单独限流。限流策略以秒为单位,即允许每秒执行多少次请求(RPS)。如果设置为 0 表示不限流。上面的例子表示限制为每秒执行 1000 次请求。

定义好 RateLimitFilter 后,将 filter 的名字加入到 Executor 的 filter list 中:

    executors:
- name: redirect
mode: sdb
config:
data_source_ref: employees
filters:
- cryptoFilter
# 限流 filter
- rateLimiterFilter

这样就配置好限流功能了。

熔断

配置 DBPack 的熔断功能,需要先定义 CircuitBreakerFilter

      - name: circuitBreakerFilter
kind: CircuitBreakerFilter
conf:
# error 次数
error_threshold: 20
# success 次数
success_threshold: 5
// seconds
timeout: 60

上面的配置表示:

  1. 60 秒内累计错误次数达到 20 次,熔断器状态为 Open 打开状态,此时请求不能执行。
  2. 熔断器打开 60 秒后,熔断器状态变为 HalfOpen 半开状态,此时可以执行请求。
  3. 熔断器状态变为 HalfOpen 半开状态后,执行的第一个请求,如果执行失败,熔断器再次变为 Open 打开状态;如果连续 5 次请求执行成功,则关闭熔断器,熔断器状态变为 Closed

定义好 CircuitBreakerFilter 后,将 filter 的名字加入到 Executor 的 filter list 中:

    executors:
- name: redirect
mode: sdb
config:
data_source_ref: employees
filters:
- cryptoFilter
# 熔断 filter
- circuitBreakerFilter

这样就配置好了熔断功能。

综述

在 v0.1.0 版本我们发布了分布式事务功能,支持各种编程语言协调分布式事务。

在 v0.2.0 版本我们发布了读写分离功能,用户在开启读写分离功能的情况下,使用分布式事务协调功能不再需要做复杂的集成,DBPack 提供了一站式的解决方案。

在 v0.3.0 版本,我们加入 SQL Tracing 的功能,使用该功能可以收集到一个完整的分布式事务链路,查看事务的执行情况。我们还加入了数据加密功能,通过该功能保护用户的重要数据资产。

在 v0.4.0 版本,我们加入了限流熔断功能,该功能能保护数据库不受到超过自身处理能力的请求流量冲击。

在 v0.5.0 版本中,我们将加入分库分表功能。

欢迎开源爱好者和我们一起建设 DBPack 社区,加群或参与社区建设,请微信联系:scottlewis。

链接

DBPack 限流熔断功能发布说明的更多相关文章

  1. .Net微服务实践(四)[网关]:Ocelot限流熔断、缓存以及负载均衡

    目录 限流 熔断 缓存 Header转化 HTTP方法转换 负载均衡 注入/重写中间件 后台管理 最后 在上篇.Net微服务实践(三)[网关]:Ocelot配置路由和请求聚合中我们介绍了Ocelot的 ...

  2. springBoot整合Sentinel实现降级限流熔断

    由于hystrix的停止更新,以及阿里Sentinel在历年双十一的贡献.项目中使用了Sentinel,今天我们来讲讲Sentinel的入门教程,本文使用1.6.3版本进行讲解 本文通过Sentine ...

  3. Hystrix介绍以及服务的降级限流熔断

    (dubbo熔断,Hystrix问的少) 无论是缓存层还是存储层都会有出错的概率,可以将它们视同为资源.作为并发量较大的系统,假如有一个资源不可用,可能会造成线程全部 hang (挂起)在这个资源上, ...

  4. .net core使用ocelot---第四篇 限流熔断

    简介 .net core使用ocelot---第一篇 简单使用 .net core使用ocelot---第二篇 身份验证 .net core使用ocelot---第三篇 日志记录 前几篇文章我们陆续介 ...

  5. springcloud3(六) 服务降级限流熔断组件Resilience4j

    代码地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-gateway/src/test/java/com/ ...

  6. Spring Cloud alibaba网关 sentinel zuul 四 限流熔断

    spring cloud alibaba 集成了 他内部开源的 Sentinel 熔断限流框架 Sentinel 介绍 官方网址 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentine ...

  7. .Net Core使用Ocelot网关(一) -负载,限流,熔断,Header转换

    1.什么是API网关 API网关是微服务架构中的唯一入口,它提供一个单独且统一的API入口用于访问内部一个或多个API.它可以具有身份验证,监控,负载均衡,缓存,请求分片与管理,静态响应处理等.API ...

  8. 深入学习spring cloud gateway 限流熔断

    前言 Spring Cloud Gateway 目前,Spring Cloud Gateway是仅次于Spring Cloud Netflix的第二个最受欢迎的Spring Cloud项目(就GitH ...

  9. .Net Core的API网关Ocelot的使用(二)[负载,限流,熔断,Header转换]

    网关的负载均衡 当下游拥有多个节点的时候,我们可以用DownstreamHostAndPorts来配置 { "UpstreamPathTemplate": "/Api_A ...

随机推荐

  1. ML第4周学习小结

    本周收获 总结一下本周学习内容: 1.学习了<深入浅出Pandas>的第五章:Pandas高级操作的两个内容 添加修改数据 高级过滤 我的博客链接: Pandas:添加修改.高级过滤 2. ...

  2. Java开发学习(二)----IOC、DI入门案例

    一.IOC入门案例 1.1 思路分析 (1)Spring是使用容器来管理bean对象的,那么管什么? 主要管理项目中所使用到的类对象,比如(Service和Dao) (2)如何将被管理的对象告知IOC ...

  3. python 企业微信发送文件

    import os import json import urllib3 class WinxinApi(object): def __init__(self,corpid,secret,chatid ...

  4. ESP8266 系统环境搭建

    1. 前言 因为ESP8266/ESP32这个开发环境没少折腾,是真没见过这么难搞又不清晰的环境. 简单开发可以使用Arduino IDE ,这个平台还是挺好的.开发使用Arduino的函数库,很高效 ...

  5. php类精确验证身份证号码

    <?php // check class check{ // $num为身份证号码,$checkSex:1为男,2为女,不输入为不验证 public function checkIdentity ...

  6. 批处理(bat、cmd)命令总结

    2021-07-21 初稿 注释与回显 rem 回显 @取消单行回显 rem 注释有三种方式 :: %content% rem rem @取消单行回显,echo off取消后面的回显 @echo of ...

  7. 5G的发布加快了智慧城市/三维物联网等行业的发展

    最近很多人发现自己的5G手机突然没了5G信号,难道是美国搞的鬼? 不不不,这其实是因为5G的NSA基站被撤站了,官方已经做了部署,要大力推进SA网络建设.所以之前支持NSA模式的5G手机,现在都成了4 ...

  8. Flex & Bison 开始

    Flex 与 Bison 是为编译器和解释器的编程人员特别设计的工具: Flex 用于词法分析(lexical analysis,或称 scanning),把输入分割成一个个有意义的词块,称为记号(t ...

  9. BluePrism手把手教程2.0 创建流程

    2.0.1 创建流程 2.0.2 设置流程名称 2.0.3 添加流程说明 2.0.4 添加流程成功 2.0.4 打开新建的流程 RPA行业微信交流群,欢迎大家扫码加入一起交流,此群用于RPA行业技术. ...

  10. fiddle如何使用代理

    前言 Fiddle作为抓包工具深受程序员的喜爱,可能在代理方面有些会感觉到迷惑的,可以通过本文的学习来掌握一些基本的知识. Fiddle介绍 Fiddler是位于客户端和服务器端的HTTP代理,也是目 ...