`
lee79
  • 浏览: 103209 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

数据库大会百度Dbproxy中间层架构概述

 
阅读更多

数据库大会百度Dbproxy中间层架构概述

2012年04月13日11:13 it168网站原创 作者:景保玉 编辑:景保玉 查看全文
0评论(0 分享

  【IT168资讯】由IT168(ITPUB、IXPUB、ChinaUnix)主办的2012中国数据库技术大会 (DTCC)于(以下简称大会)2012年4月13日~15日在北京永泰福朋喜来登大酒店隆重召开。大会将针对大数据架构设计、数据库安全、分布式数据 库、商业智能、NoSQL、Hadoop等多个重点话题进行深入探讨。此次大会得到了全国数据库技术高手们的高度关注与支持,是当前象征最高技术水平的数 据库工程师盛会。

  互联网协会孙永革:专业的数据库大会

  ▲更多报道,更多精彩尽在IT168现场直播(点击了解更多)

  目前业界正在面临最大的难题,面对的数据量在爆炸性的增长,用户对互联网服务提出了更多的要求,因此在背后的架构上都是很大的挑战。随着数据库流量和服务器数量增长,数据库集群面临很多的问题,如何实现应用程序和集群的解耦,降低运维成本?如何实现数据库服务的高可用?如何将并发控制前移,保护数据库系统?如何降低数据库开发的成本,用中间曾实现基本的技术,降低了开发成本。

数据库大会百度Dbproxy中间层架构概述
▲百度高级DBA 数据库Topic技术负责人尹博学

   本节课上,百度高级DBA 数据库Topic技术负责人尹博学给到场的开发者介绍了百度数据库中间层技术,主要包括百度数据库中间层的整体设计、主要功能模块的实现策略、性能方面; 同时就百度数据库集群所面临的问题、从这些问题中抽象出的对数据库中间层的需求同大家进行深入的探讨。

  百度运维部DBA组负责百度所有数据库服务管理工作,是百度服务核心数据的提供者和保障者,是维护服务稳定的核心力量;涵盖数据库设计、评审、SQL代码REVIEW;数据库核心组件及平台的规划、设计、开发工作;使百度的数据库更稳定、更高效、更易于管理。

   所谓三层体系结构,是在客户端与数据库之间加入了一个中间层。三层体系不是指物理上的三层,不是简单地放置三台机器就是三层体系,三层是指逻辑上的三 层,即使这三个层放置到一台机器上。三层体系结构的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数 据库进行交互,而是通过与中间层通讯建立连接,再经由中间层与数据库进行交互。

  在三层结构中,数据计算与业务处理集中在中间层,只有中间层实现正式的进程和逻辑规则。数据库中间层的定义:屏蔽集群内部细节,MysQL集群读写分离,连接池,负载均衡,访问控制,可集群化的部署,运维关键要求:支持高并发和低延迟,对数据库应用透明。

数据库大会百度Dbproxy中间层架构概述
▲百度数据库集群的三层架构

数据库大会百度Dbproxy中间层架构概述
▲百度Dbproxy逻辑框架设计

  由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。

  Dbproxy负载均衡策略:1基本算法是基于数据库当前连接数的。2新建连接选取集群中同类角色中“当前连接数/权重”最小的数据库。

数据库大会百度Dbproxy中间层架构概述
▲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

分享到:
评论

相关推荐

    基于MySQL的数据库中间件Meituan-DBProxy.zip

    奇虎360公司开源的Atlas是优秀的数据库中间件,美团点评DBA团队针对公司内部需求,在其上做了很多改进工作,形成了新的高可靠、高可用企业级数据库中间件DBProxy,已在公司内部生产环境广泛使用,较为成熟、稳定。...

    基于MySQL的数据库中间件SOHU-DBProxy.zip

    SOHU-DBProxy 是由 搜狐 数据库团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的 MySQL-Proxy 0.8.3版本的基础上, 修改了大量bug,添加了很多功能特性。现在已经在sohu的多个业务线上使用...

    美团点评的DBProxy实践

    第二部分,会介绍一下美团点评DBProxy的整体架构;第三个是美团点评DBProxy的主要模块,主要模块介绍我们美团点评在上面的主要工作;第四个部分是上线的现状;第五个部分是我们后续的一些安排,未来的计划;最后是QA...

    在MySQL数据库增加新用户权限

    有两个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表。比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些。本文为大家介绍了如何使用mysql客户安装新用户,如何发出GRANT语句增加...

    dbproxy安装1

    dbproxy安装1

    dbproxy概述1

    DBProxy 位于应用程序和数据库之间,可以监视/控制/转发客户端的请求以及服务器返回的结果,实现连接复用、负载均衡、故障迁移、读写分离功能。连接池和连接复用

    mirrors-dbproxy-master.zip

    DBProxy是由美团点评公司技术工程部DBA团队(北京)开发维护的一个基于MySQL协议的数据中间层。它在奇虎360公司开源的Atlas基础上,修改了部分bug,并且添加了很多特性。目前DBProxy在美团点评广泛应用,包括美团...

    dbproxy管理命令列表1

    一:帮助命令命令功能查询 DBProxy 支持的管理命令命令语法举例| AddBackend | add a new backend to backend li

    搜狐公司强大的数据库中间件

    SOHU-DBProxy是由 搜狐 数据库团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.3版本的基础上, 修改了大量bug,添加了很多功能特性。现在已经在sohu的多个业务线上使用 ...

    dbproxy]基于阿里cobar增强的opencloudb

    • 在支持Mysql的基础上,后端增加更多的开源数据库和商业数据库的支持,包括原生支持PosteSQL、FireBird等开源数据库,以及通过JDBC等方式间接支持其他非开源的数据库如Oracle、DB2、SQL Server等 • 实现更为智能...

    dbproxy使用限制1

    比如 JDBC allowMultiQueries=true不支持连接的 SSL 协议和压缩协议set transaction 支持,但是如果有使用需要明确说明

    黑!默认网站数据库下载

    网站的默认数据库下载 可以下载很多网站的数据库!只用于学习,后果自负

    dbproxy_测试报告1

    2.1.1 2.1.2 2.1.3 2.1.4 2.2.1 2.2.2 2.2.3 3.1.1 3.1.2 3.1.3 3.1.4 4.1.1 4.1.2 4.

    dbproxy的线程分发设计的讨论过程1

    1.为啥需要修改 2.如何修改和代价 3.实施计划: 1.谢文为主看 360dbproxy 写出设计文档, 金轩同时写一个设计文档, 周二一起讨论 2. 讨论完

    从0到1,滴滴DB自动化运维架构实践

    一般来说,自动化运维都会根据自己原有的架构来设计自动化运维平台,上图是滴滴DB的架构图,最上面是TGWLVS,也就是大家所熟悉的VIP,接下来是代理层dbproxy。代理层下面是MySQL的主从关系,一般情况是一主、一备主...

    DBProxy sql限制设计文档1

    1. 可以动态加载配置文件(规则文件) 2. 可以根据配置的规则阻断某条或者某类 SQL 语句 1. 每个<rule> 中放一条规则 2. rul

    DBProxy 连接池设计文档1

    3.1.1 3.1.2 3.2.1 3.2.2 3.3.1 3.3.2 3.4.1 3.4.2 3.5.1 3.5.2 3.6.1 3.6.2 4.1.1 4.

    大规模分布式系统架构下调测能力构建之道

    应用的拆分及分布式中间层服务的引入在提升了应用的性能及扩展性的同时也给开发带来了极大的挑战,尤其是在多团队协同的背景下,应用依赖模块分散在不同的开发环境中,给每个人搭建一套完整的环境极其困难。...

    跨平台redisproxy代理服务器RedisProxy.zip

    介绍dbproxy是一个采用C 11编写的代理服务器,支持redis和 ssdb数据库。 其主要用于扩容和提高系统负载。使用lua控制sharding,把不同的key-value映射到不同的后端redis或ssdb服务器。构建dbproxy支持windwos和linux...

Global site tag (gtag.js) - Google Analytics