数据库大会百度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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCloudb介绍 什么是OpenCloudb?简单的说,OpenCloudb就是: • 一个彻底开源的,面向企业应用开发的“大数据库集群” • 支持事务、ACID、可以替代Mysql的加强版数据库 • 一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群 • 一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 • 一个新颖的数据库中间件产品 OpenCloudb的目标是:低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。 OpenCloudb的关键特性: • 支持Mysql集群,可以作为Proxy使用 • 自动故障切换,高可用性 • 支持全局表,数据自动分片到多个节点,用于高效表关联查询 • 支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询 • 多平台支持,部署和实施简单 OpenCloudb的优势: • 基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能,以及众多成熟的使用案例使得OpenCloudb一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。 • 广泛吸取业界优秀的开源项目和创新思路,将其融入到OpenCloudb的基因中,使得OpenCloudb在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。 • OpenCloudb背后有一只强大的技术团队,其参与者都是5年以上资深软件工程师、架构师、DBA等,优秀的技术团队保证了OpenCloudb的产品质量。 • OpenCloudb并不依托于任何一个商业公司,因此不像某些开源项目,将一些重要的特性封闭在其商业产品中,使得开源项目成了一个摆设。 OpenCloudb的长期路线规划: • 在支持Mysql的基础上,后端增加更多的开源数据库和商业数据库的支持,包括原生支持PosteSQL、FireBird等开源数据库,以及通过JDBC等方式间接支持其他非开源的数据库如Oracle、DB2、SQL Server等 • 实现更为智能的自我调节特性,如自动统计分析SQL,自动创建和调整索引,根据数据表的读写频率,自动优化缓存和备份策略等 • 实现更全面的监控管理功能 • 与HDFS集成,提供SQL命令,将数据库装入HDFS中并能够快速分析 • 集成优秀的开源报表工具,使之具备一定的数据分析的能力

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值