RDS 循序渐进 – 闪断篇

阿里云关系型数据库服务(后简称RDS) 为用户提供的诸多功能中,其中有一个最基本也最为重要的特性:快速为用户部署一个“高可用”的数据库环境。本篇我们主要一起来探讨RDS“高可用”的实现方案以及在此方案中出现的“闪断”情况。

 

RDS高可用实现方案

RDS 为保证高可用服务,为每个用户购买的实例在后端提供了两个节点,正常情况下某一时刻只由主节点(下图中的节点A)提供读写服务,而备节点(下图中的节点B)负责数据同步;当A发生(硬件)故障时, HA控制器(代号:AURORA)会在30秒内将服务切换到B节点上面,通过这种机制来保证数据库实例的高可用性。

RDS 简易链路访问图

进行主备切换后,真正生效的服务节点为B。为了主备切换对用户和应用透明,我们使用VIP技术来提供数据服务。用户在程序里只要配置VIP地址,不管后端节点切换到哪里,都不需要变更数据库连接地址,即可继续与数据库服务建立会话并完成请求。

虽然RDS在发生主备切换后,应用程序与数据库可以建立新会话(SESSION),但在切换前APP与RDS建立好的会话(保存在A节点)已经断开,对程序来说这部分会话已经失效,这时候需要程序有能力重新建立会话以恢复正常请求。

RDS 闪断,是指APP与RDS之间的网络链路在短时间内(一般不超过三十秒)发生了中断,需要应用重新建立连接即可恢复;虽然是通过VIP提供服务,但APP与数据库的连接是保存在A节点上面,在发生切换后,APP与A节点建立的物理链接也会被中断,导致APP需要与B节点重新建立链接;这就是闪断发生的整个过程。

 

如何应对“闪断”

 

处理闪断其实很简单,有两种常见方法:

1)  使用“短连接”模式向数据库发起请求

短连接模式,是指与数据库建立会话后,只进行一次请求,完成后该会话即被关闭;

不过短连接模式下,每个请求都需要向数据库认证账号与密码,每个认证过程至少6次网络交互,效率较低;适合于请求量较小的应用或网站采用。

 

2)  配置连接池,使其消除掉有问题的连接(推荐模式)

大多数连接池均包含链接有效性探测,适当配置后即可消除连接闪断对应用的影响,比如适用于JAVA语言的CP30、DBCP、Druid等连接池,均可通过以下几个参数设置(需要充分测试以确定可能的性能开销):

<property value=”SELECT 1″ name=”validationQuery”></property><property value=”true” name=”testWhileIdle”></property>

<property value=”true” name=”testOnBorrow”></property>

<property value=”true” name=”testOnReturn”></property>

 

当然技术总是需要不断进步的。RDS 内核团队正在研究一种”桥接”技术,当发生节点A到节点B的切换时,可以自动让APP与节点B建立连接,做到对APP完全透明。该技术成功突破后,数据库的重连机制会由底层统一实现,不再需要大家去重复敲相同的代码,那将是开发者的一大福音。

时间: 2024-09-06 18:08:34

RDS 循序渐进 – 闪断篇的相关文章

公司网络内员工上网总是闪断,求助

网络总是闪断,不是所有的人同时断,抓包显示好像是解析的时候总是跑到本地的wins解析,netbios里面 以前是很正常的,现在每次间隔1-2个小时,有时时间会短一些,到底是什么原因造成的,求助

PHP连接MySql闪断自动重连的方法_Mysql

使用php作为后台运行程序(例如短信群发),在cli模式下执行php,php需要连接mysql循环执行数据库处理. 当mysql连接闪断时,之后循环的执行将会失败. 我们需要设计一个方法,当mysql闪断时,可以自动重新连接,使后面的程序可以正常执行下去. 1.创建测试数据表 CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (

谷歌部分服务遭遇“闪断”

早报记者 王吉陆 6月24日晚上9时左右至昨天下午,包括Gmail在内的多项谷歌国际域名(www.google.com)下的服务遭遇"闪断",多项服务不能正常使用连接,但中国域名(www.google.cn)下的服务则全部正常.昨日下午,各项服务陆续恢复. 昨天,北京网络新闻信息评议会则向某些境外媒体表示强烈谴责,认为他们借国家有关部门处罚"谷歌中国"网站无端指责政府净化互联网环境. 据中立第三方调查机构数据显示,截至2008年底,Google旗下的邮件服务Gmai

断篇-金融大数据最佳实践总结篇

一.数据挖掘的价值体现 任何数据分析或者挖掘的项目都不会直接产生经济价值和意义,分析出的数据结果既不能给企业直接带来一个客户,也不能帮助企业卖出一件产品.数据分析的价值体现在于业务部门根据分析结果制定相关的经营策略并贯彻执行. 二.大数据之困-通道 大数据之困-如何打通底层数据存储到上层数据服务的通道问题,讲成为制约大数据发展的关键因素.当越来越多的人意识到大数据的未来在应用的时候,这个问题也就越来越紧迫. 三.大数据金融-行业化运作 大数据金融行业化营销模式才是王道,单独的通过打项目的方式做项

使用RDS for SQL Server的一些最佳实践

了解RDS的概念 这也是第一条,也是最重要的一条,在使用某项产品和服务之前,首先要了解该产品或服务的功能与限制,就像你买一个冰箱或洗衣机,通常也只有在阅读完说明书之后才能利用起来它们的所以功能,以及使用时的注意事项,RDS for SQL Server也是如此. RDS for SQL Server与传统的自建机房提供SQL Server的主要不同就是用户所需负责数据库的模块多与少的问题,自建SQL Server与阿里云RDS for SQL Server所需负责的部分图1所示: 当然,便捷的代

5月26日OCS、ADS、RDS、DRDS产品升级公告

尊敬的用户: 您好,为了提升产品性能,阿里云计划对OCS.ADS.RDS.DRDS产品进行升级,详情如下:一.OCS升级详情:2015年05月26日00:00-03:25对OCS服务所在机房做系统升级.变更期间,用户OCS已建立的连接会出现闪断,自动重连后即可恢复.二.ADS升级详情:2015年05月26日16:00-22:00 对分析数据库服务ADS 进行系统升级,影响如下: 1.升级中的6个小时可能无法进行数据导入: 2.在升级前未完成的数据导入可能会延后6个小时完成: 3.升级期间有部分时

余锋(褚霸):RDS数据通道的挑战和实践

9月13日,阿里云课堂第一期在北京准时开课,到场与会人员众多,现场气氛非常热烈.阿里云三位讲师为大家献上了精彩的演讲,参会者也纷纷积极参与现场互动,通过问答交流,收获颇丰.应广大用户要求,我们将云课堂讲师现场分享内容全文整理出来,供大家参考.阿里云课堂会继续在全国各地陆续开课,欢迎大家继续支持!   以下为讲师余锋(褚霸)的分享内容: 大家下午好,今天很高兴在这里跟大家分享一下RDS数据通道的挑战和实践.RDS大家都知道,是云产品三架马车之一.数据服务一般在整个生态链最底层的.RDS就是数据通道

RDS链路卡慢问题的诊断

经常会收到用户反馈在使用RDS的过程中出现卡慢,闪断地情况,当出现此类问题的时候,首先我们要进行一下测试,看看问题出现在哪一个阶段,RDS给到用户的是一个DNS地址,其实他包括三个阶段:DNS–>VIP–>DB        我们可以在本地的应用服务器(VM)上通过简单的ping命令,或者数据库的客户端去不断的连接测试RDS,来获取每次连接RDS的响应时间(RT).在正常情况下RT应该小于20ms以内,如果超出10ms,则表明了RDS的网络链路出现了异常,这个时候我们就需要去排查一下是在哪里出

1月13日阿里云ECS、SLB和RDS升级公告

ECS升级公告: 尊敬的阿里云用户: 您好,为了更好的优化ECS服务,阿里云ECS服务将于1月13日23:00-06:00进行系统升级,升级期间影响如下: 1)阿里云官网停止售卖云服务器,无法在官网上购买和升级续费云服务器. 2)您无法在ECS控制台和通过ECS API对云服务器做任何操作,包括:创建.释放.启动.停止.重启.重新初始化磁盘,创建快照.回滚快照,重置,创建自定义镜像等,升级期间不影响云服务器正常运行.调用ECS API 以上受影响的操作,统一返回错误码: ServiceUnava