DBPack 数据库限流熔断功能发布说明

简介: 在 v0.4.0 版本,我们加入了限流熔断功能,该功能能保护数据库不受到超过自身处理能力的请求流量冲击。在 v0.5.0 版本中,我们将加入分库分表功能。欢迎开源爱好者和我们一起建设 DBPack 社区,加群或参与社区建设,请微信联系:scottlewis。

上周我们发布了 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: https://github.com/CECTC/dbpack

dbpack-samples: https://github.com/CECTC/dbpack-samples

dbpack-doc: https://github.com/CECTC/dbpack-doc

事件驱动分布式事务设计:https://mp.weixin.qq.com/s/r43JvRY3LCETMoZjrdNxXA

视频介绍:

《dbpack 分布式事务功能详解》 https://www.bilibili.com/video/BV1cg411X7Ek

《高性能分布式事务框架实践》https://www.bilibili.com/video/BV1Xr4y1L7kD

目录
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
阿里云RDS云数据库全解析:产品功能、收费标准与活动参考
与云服务器ECS一样,关系型数据库RDS也是很多用户上云必买的热门云产品之一,阿里云的云数据库RDS主要包含RDS MySQL、RDS SQL Server、RDS PostgreSQL、RDS MariaDB等几个关系型数据库,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,帮助您解决数据库运维的烦恼。本文为大家介绍阿里云的云数据库 RDS主要产品及计费方式、收费标准以及活动等相关情况,以供参考。
|
10月前
|
存储 NoSQL 关系型数据库
PolarDB开源数据库进阶课17 集成数据湖功能
本文介绍了如何在PolarDB数据库中接入pg_duckdb、pg_mooncake插件以支持数据湖功能, 可以读写对象存储的远程数据, 支持csv, parquet等格式, 支持delta等框架, 并显著提升OLAP性能。
745 2
|
5月前
|
SQL 存储 关系型数据库
MySQL功能模块探秘:数据库世界的奇妙之旅
]带你轻松愉快地探索MySQL 8.4.5的核心功能模块,从SQL引擎到存储引擎,从复制机制到插件系统,让你在欢声笑语中掌握数据库的精髓!
197 26
|
11月前
|
Cloud Native 关系型数据库 分布式数据库
让PolarDB更了解您--PolarDB云原生数据库核心功能体验馆
让PolarDB更了解您——PolarDB云原生数据库核心功能体验馆,由阿里云数据库产品事业部负责人宋震分享。内容涵盖PolarDB技术布局、开源进展及体验馆三大部分。技术布局包括云计算加速数据库演进、数据处理需求带来的变革、软硬协同优化等;开源部分介绍了兼容MySQL和PostgreSQL的两款产品;体验馆则通过实际操作让用户直观感受Serverless、无感切换、SQL2Map等功能。
411 7
|
7月前
|
存储 缓存 自然语言处理
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
218 8
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
|
9月前
|
SQL Linux 数据库
【YashanDB知识库】崖山数据库Outline功能验证
本文来自YashanDB官网,主要测试了数据库优化器在不同场景下优先使用outline计划的功能。测试环境包括相同版本新增数据、绑定参数执行、单机主备架构以及数据库版本升级等场景。通过创建表、插入数据、收集统计信息和创建outline等步骤,验证了在各种情况下优化器均能优先采用存储的outline计划。测试结果表明,即使统计信息失效或数据库版本升级,outline功能依然稳定有效,确保查询计划的一致性和性能优化。详情可见[原文链接](https://www.yashandb.com/newsinfo/7488286.html?templateId=1718516)。
【YashanDB知识库】崖山数据库Outline功能验证
|
9月前
|
NoSQL 关系型数据库 MongoDB
Apifox与Apipost数据库连接功能详细对比,让接口管理更高效!
在现代软件开发中,数据库是应用运行的核心组件,接口管理工具则是连接和调试数据库的重要桥梁。本文对比了 Apifox 和 Apipost 两款工具的数据库连接功能。Apipost 支持全面的关系型与非关系型数据库(如 MySQL、Redis、MongoDB),功能强大且免费,适合复杂项目;而 Apifox 在关系型数据库支持上表现良好,但非关系型数据库(尤其是 Redis)功能有限且收费,更适合中小项目以关系型数据库为主的需求。根据项目需求选择合适的工具,可显著提升开发效率和稳定性。
|
9月前
|
数据库连接 PHP 数据库
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
|
9月前
|
PHP 数据库
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
|
9月前
|
存储 NoSQL 关系型数据库
Apifox与Apipost数据库连接功能详细对比,让接口管理更高效!
Apipost 更加全面:无论是关系型还是非关系型数据库,它都为开发者提供了一站式解决方案,非常适合数据库架构复杂的大型项目。相对来说,Apifox偏重关系型分析和管理:若项目主要需求在于管理关系型数据库,而对非关系型的依赖较小,Apifox倒是可以应付。
260 2

热门文章

最新文章