开发者社区> 化雨u> 正文

drds连接池

简介:
+关注继续查看

DRDS连接池
drds是一款基于阿里云rds的数据库中间件,总结一下关于drds连接池的理解
image

从DRDS来看,有两个连接池:
*1、 应用到DRDS的连接池
2、 DRDS到后端RDS的连接池*

应用到DRDS的连接池
目的:提高应用性能,减轻数据库负载
作用:
1、资源复用:连接可以重复利用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,同时增进了系统的平稳性。

2、提高系统响应效率:连接的初始化工作完成后,所有请求可以直接利用现有连接,避免了连接初始化和释放的开销,提高了系统的响应效率。

3、避免连接泄漏:连接池可根据预设的回收策略,强制回收连接,从而避免了连接资源泄漏

某专有云采用的是德鲁伊连接池,这也是官网推荐的连接池类型。配置信息如下图:
image

drds之前出现过节点连接数不均衡问题,某几个节点的压力过大,导致docker连接异常。
解决过程:
1、修改应用到drds的探活语句,之前探活语句查看执行计划发现是打到了drds下面rds的 0 号库上,导致drds的0号库qps压力高。现在修改语句只探活到drds层面,这个主要是针对0号库压力高的问题。
2、升级德鲁伊版本,并且设置固定时间关闭连接的参数phyTimeoutMillis升级后观察连接数还是比较平均的。当然drds也有自己的slb负载均衡,通过相应的算法来将应用连接数分配到各个docker节点上。

DRDS到后端RDS的连接池
DRDS到后端的连接池是指:从每个DRDS节点到后端RDS每个分库的连接池。这个连接池是在drds的docker节点上的。
DRDS后端连接池的大小设置是与后端RDS的最大连接数相关的,参考最大连接处设置公式如下:

最大连接数=RDS实例最大连接数/DRDS节点数/RDS实例分库数(每个RDS上的物理分库数)

改值只是一个参考值

如何修改该值:
1、 通过drds manager中实用功能可以自定义该值,注意appname是show datasources中的schema字段,也可以通过drdsmanager查询该值。
2、 通过drds console进行调整实例连接池信息,会根据后端RDS实例进行调整,并且会reload从drd到rds的连接,这是自动调整的,无法自定义设置。

相关问题:
客户在进行压测的过程导致drds的0号库连接池被打满,具体报错理解为connection $RDS_0号库 full。想要咨询并且修改drds到后端rds的连接数。

针对该问题,首先建议客户需要优化对应的慢SQL,并且0号库rds的实例连接数相比其他的数据库连接数配置要低,连接池更容易因为慢sql而被打满,或者说有没有一些大事务、长事务等占用连接不释放等。

应用到drds和drds到rds的两段连接数是异步的,没有绑定关系的。前端到drds的连接数,drds首先接住这些连接,然后通过自己的转发机制,异步转发到节点上去执行,每个节点都会有一个连接池到rds上分库的连接,这样也不能保证是哪个节点的连接池被打满。这也跟业务相关,假如压测中很多场景是多访问0号库的业务,也会导致0号库出现这个问题,这些都是要去考虑的。

实例连接数是可以增加的,但是不能一味的增加连接数,首先应该从问题根源上确认是否有导致出现连接数打满的问题,需要去优化的要做好优化,最后考虑去升级规格。避免出现一直升级连接数还是被打满的问题。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
配置 pgcat for PolarDB 读写分离连接池
PolarDB 开源数据库支持云原生存算分离分布式架构, 一份存储支持多个计算节点, 目前是一写多读的架构. 内核已经很强大了, 怎么实现业务透明的读写分离, 还缺一个连接池, pgcat是不错的选择. pgcat支持连接池、sharding、读写负载均衡等, 更多功能请参考其官网 https://github.com/levkk/pgcat
50 0
分布式关系型数据库服务DRDS——DRDS 主要解决的问题和DRDS的主要功能
分布式关系型数据库服务DRDS——DRDS 主要解决的问题和DRDS的主要功能,
87 0
DRDS与MySQL、NoSQL的区别
DRDS与MySQL、NoSQL的区别自制脑图
51 0
MySQL 数据库集群-PXC 方案(三)
MySQL 数据库集群-PXC 方案(三)
383 0
MySQL 数据库集群-PXC 方案(一)
MySQL 数据库集群-PXC 方案(一)
416 0
MySQL 数据库集群-PXC 方案(四)
MySQL 数据库集群-PXC 方案(四)
103 0
MySQL 数据库集群-PXC 方案(二)
MySQL 数据库集群-PXC 方案(二)
230 0
PolarDB-X 与 X-DB、PolarDB
PolarDB-X与X-DB、PolarDB都是阿里巴巴的数据库产品。那么他们之间有什么样的关系?
11381 0
RDS数据库连接数高怎么办
RDS数据库连接数高修改方法
216 0
PolarDB-X 1.0-VPC 问题-如果RDS实例切换到VPC而DRDS没有切换,对DRDS会产生什么影响?
由于DRDS依赖于RDS,所以如果将RDS实例切换了网络类型后(无论是从经典网络切换VPC还是从VPC切换经典网络),DRDS与RDS之间的网络连通性会被破坏。为此,需要到DRDS控制台对DRDS实例的分库连接进行修复操作。
114 0
+关注
化雨u
智者乐水,仁者乐山
文章
问答
文章排行榜
最热
最新
相关电子书
更多
分布式数据库DRDS全新升级
立即下载
PolarDB for PostgreSQL高可用
立即下载
PolarDB for PostgreSQL三节点功能介绍
立即下载