数据库大会百度Dbproxy中间层架构概述
【IT168资讯】由IT168(ITPUB、IXPUB、ChinaUnix)主办的2012中国数据库技术大会 (DTCC)于(以下简称大会)2012年4月13日~15日在北京永泰福朋喜来登大酒店隆重召开。大会将针对大数据架构设计、数据库安全、分布式数据 库、商业智能、NoSQL、Hadoop等多个重点话题进行深入探讨。此次大会得到了全国数据库技术高手们的高度关注与支持,是当前象征最高技术水平的数 据库工程师盛会。
目前业界正在面临最大的难题,面对的数据量在爆炸性的增长,用户对互联网服务提出了更多的要求,因此在背后的架构上都是很大的挑战。随着数据库流量和服务器数量增长,数据库集群面临很多的问题,如何实现应用程序和集群的解耦,降低运维成本?如何实现数据库服务的高可用?如何将并发控制前移,保护数据库系统?如何降低数据库开发的成本,用中间曾实现基本的技术,降低了开发成本。
▲百度高级DBA 数据库Topic技术负责人尹博学
本节课上,百度高级DBA 数据库Topic技术负责人尹博学给到场的开发者介绍了百度数据库中间层技术,主要包括百度数据库中间层的整体设计、主要功能模块的实现策略、性能方面; 同时就百度数据库集群所面临的问题、从这些问题中抽象出的对数据库中间层的需求同大家进行深入的探讨。
百度运维部DBA组负责百度所有数据库服务管理工作,是百度服务核心数据的提供者和保障者,是维护服务稳定的核心力量;涵盖数据库设计、评审、SQL代码REVIEW;数据库核心组件及平台的规划、设计、开发工作;使百度的数据库更稳定、更高效、更易于管理。
所谓三层体系结构,是在客户端与数据库之间加入了一个中间层。三层体系不是指物理上的三层,不是简单地放置三台机器就是三层体系,三层是指逻辑上的三 层,即使这三个层放置到一台机器上。三层体系结构的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数 据库进行交互,而是通过与中间层通讯建立连接,再经由中间层与数据库进行交互。
在三层结构中,数据计算与业务处理集中在中间层,只有中间层实现正式的进程和逻辑规则。数据库中间层的定义:屏蔽集群内部细节,MysQL集群读写分离,连接池,负载均衡,访问控制,可集群化的部署,运维关键要求:支持高并发和低延迟,对数据库应用透明。
▲百度数据库集群的三层架构
▲百度Dbproxy逻辑框架设计
由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。
Dbproxy负载均衡策略:1基本算法是基于数据库当前连接数的。2新建连接选取集群中同类角色中“当前连接数/权重”最小的数据库。
▲Dbproxy支持并发设计
连接池是数据库开发中最重要的策略
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮 性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据 库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数 据库操作的性能。
主要用于以下方面:1构建有与MysQL连接池,提升性能。2、连接池有三级hash策略,保证取到的连接可以正确的使用,包括read/write,用户权限,连接属性,如client_found_rows等(include/mysql_com.h)。
百度在Dbproxy做了四个方面的开发工作
1配置信息热加载。2支持连接多个数据库集群。3、将自身压力信息准确的输出。4流量控制,不至于压垮数据库。
Dbproxy对应用程序透明策略
1、MySQL clientserver protocol。2、数据库(MysQL)某系统特性。3、各种语言的MysQL API,各种MysQL的连接框架的特殊行为。
Dbproxy提高性能的策略
1. 减少延长。通过进程+状态机的模式,无锁,nonblock,网络操作都是就绪之后才能执行。对于大结果集的接收,采用了非连续接收的模式,减少其他链接的等待。
2. 提高 并发处理能力。支持多个dbproxy工作进程监听一个端口。
http://tech.it168.com/a2012/0413/1337/000001337034.shtml
相关推荐
在IT行业中,数据库管理和分布式系统是关键组成部分,而`dbproxy`作为一个数据库代理服务,它在数据访问和管理中起到连接应用与数据库的作用。然而,`dbproxy`并不是万能的,它存在一定的使用限制,这些限制对于正确...
奇虎360公司开源的Atlas是优秀的数据库中间件,美团点评DBA团队针对公司内部需求,在其上做了很多改进工作,形成了新的高可靠、高可用企业级数据库中间件DBProxy,已在公司内部生产环境广泛使用,较为成熟、稳定。...
SOHU-DBProxy 是由 搜狐 数据库团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的 MySQL-Proxy 0.8.3版本的基础上, 修改了大量bug,添加了很多功能特性。现在已经在sohu的多个业务线上使用...
7. **透明访问**:由于 DBProxy 兼容 MySQL 协议,对于业务层来说,使用 DBProxy 就如同直接访问数据库一样,不需对现有应用进行大规模改造,简化了架构,降低了运维复杂度。 综上所述,DBProxy 是一款强大的数据库...
#### 一、百度数据库中间件概述 百度数据库中间件是一种专门针对大规模互联网应用而设计的分布式数据库管理工具。它主要用于解决MySQL数据库集群在面对海量数据处理时遇到的一系列挑战,如高并发、高可用性、可扩展...
DBProxy 是一个基于 MySQL 的数据库代理服务器,可以帮助我们更好地管理和监控数据库。下面是 DBProxy 安装指南的详细说明。 一、安装前准备 在安装 DBProxy 之前,我们需要准备一些依赖软件包。这些依赖软件包...
DBProxy 是一个数据库中间件,它提供了一组丰富的管理命令来监控、配置和管理后端数据库服务器。在本文中,我们将深入探讨标题为 "dbproxy管理命令列表1" 的描述和部分内容,主要关注与 MySQL 相关的命令。 1. **...
在MySQL数据库中添加新用户权限是一项关键的管理任务,它涉及到数据库的安全性和访问控制。本文主要探讨了两种方法,即使用GRANT语句和直接操作MySQL授权表来完成这一过程,但推荐使用GRANT语句,因为这种方法更简洁...
在 MySQL Sharding 架构中,有多个部分组成,包括中间层 dbproxy 集群、数据库组、元数据服务器和常驻进程。中间层 dbproxy 负责解析客户端的 SQL 请求,并将其路由到正确的数据库节点上。数据库组由多台数据库机器...
第二部分,会介绍一下美团点评DBProxy的整体架构;第三个是美团点评DBProxy的主要模块,主要模块介绍我们美团点评在上面的主要工作;第四个部分是上线的现状;第五个部分是我们后续的一些安排,未来的计划;最后是QA...
DBProxy的优势在于,它作为一个中间层,所有Web前端对数据库的访问都需经过代理,这样可以在不干扰数据库服务器的情况下实现审计和控制。 以美团开源的DBProxy为例,其安装过程涉及多个依赖包的安装,如Percona ...
DBProxy是由美团点评公司技术工程部DBA团队(北京)开发维护的一个基于MySQL协议的数据中间层。它在奇虎360公司开源的Atlas基础上,修改了部分bug,并且添加了很多特性。目前DBProxy在美团点评广泛应用,包括美团...
- **融合存储服务**:滴滴的融合数据库架构形成了一个统一的服务接口,为不同业务场景提供定制化的数据访问方式。 综上所述,滴滴的融合数据库技术架构展示了如何巧妙地结合开源技术,实现大规模数据处理、高可用...
- **集中式Oracle数据库**:初期采用了集中式的Oracle数据库架构,虽然提供了良好的性能和可靠性,但同时也高度依赖于昂贵的高端硬件。 - **可用性依赖高端硬件**:这种依赖不仅增加了成本,还限制了系统的灵活性和...
目前,金融行业绝大多数系统的数据存储层都采用“IBM小型机+AIX操作系统+DB2/Oracle数据库+高端存储阵列”的实现方式。随着业务和技术的发展,这种方式逐渐暴露出一些问题。一是棱镜门事件后,监管机构从国家信息...
DBProxy的测试报告详细记录了该数据库代理软件的测试过程和结果,涵盖了多个测试阶段,包括功能性测试、单元测试、集成测试以及稳定性测试。以下是针对这些测试内容的详细说明: 1. **测试总结**:这部分是对整个...
此外,DBProxy 还需具备高可用性和负载均衡能力,能够根据预设策略将请求分发到不同的数据库服务器,提高整个数据库系统的整体性能。 2. 连接池概要设计 2.1 配置管理模块 配置管理模块负责读取和解析配置文件,...
总结起来,这个企业博客系统采用的MySQL 5.7数据库架构是高度优化的,它结合了GTID、MTS、Crash safe、半同步复制以及dbproxy,实现了高效、安全且具有容错能力的数据管理。这种架构对于处理大规模并发请求、保障...
SOHU-DBProxy是由 搜狐 数据库团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.3版本的基础上, 修改了大量bug,添加了很多功能特性。现在已经在sohu的多个业务线上使用 ...