`
zhanghteye
  • 浏览: 51196 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

分布式数据库架构详解-超大门户百度案例(学习)

阅读更多

示例系统:存放百度SDK记录运营商游戏的交易信息

1、背景(2012年左右):

当时开始简单的主从结构,随着数据量增大、规模扩大、对高可用要求越来越高(之前从宕机两小时到后来五分钟),需要继续拓展。

当时的数据库拆分、分库分表,数据库服务器达到4百台,只有一个DBA,每天的数据迁移、拓容很痛苦。

当时数据库峰值能达到每秒2.5万笔。当时淘宝双十一每秒峰值30万笔。

2、为什么使用mysql

社区(主要)、免费

3、mysql目前存在问题

1、单机性能

如果是小网站,每天PV几十万、几百万,数据量不超过1个亿,都不会问题。

数据量大、操作量大,就不行。

a、QPS(读/写)

网上有专门对mysql数据库性能测试的文章。

当时百度存储的物理机是48核、96G内存的IBM机器(主流配置)。

硬件在整个架构里面是最廉价的。原则,如果硬件能解决问题,先升级、增加硬件,不行再改系统架构。因为硬件是最快的,最省成本的。

百度有专门的mysql团队做优化,如针对不同的业务线的数据库进行优化,包括参数、内核。

b、响应时间

一般sql查询要求小于50ms。

c、数据规模

单表的规模不能超过2000万,只能分表分库。

原则,能用空间的去换时间的,尽量用空间。

4、IOPS是读操作和写操作的瓶颈

IOPS磁盘读写。

2、主从数据一致性

应用还是选择主从复制。mysql半同步当时未发布正式版本,没人敢去尝试。

a、异步复制

复制原理

binlog内部结构

复制协议

数据延迟判定

b、半同步复制

3、自动化扩容

按照一定规则扩容(1、hash取模拓容、范围、日期等;2、水平、垂直拓容)

数据容量预估,提前预警(1、单表容量预估(业务、现有机器配置、数据字段类型、数据量);2、buffer pool容量、命中率;3、磁盘容量)

全量+增量自动化扩容(1、从库提升为新主库(主从数据一致);2、自动或者手动;3、扩融完毕通知代理曾对前端透明)

4、主库单点

主备策略(备库只做数据同步,不做线上查询)

数据补全(从主库拉取binlog文件进行数据补全)

单点切换(1、主库宕机,切换新主库,尽量保存数据一致性(业务特性);2、通知代理层切换新的主库对应用透明)

 

 

主库就一台,数据库峰值2.5万笔每秒,扛不住。

(如何解决这些问题呢,思路引导,集群、分布式

分布式系统跟集群的很大差别:集群系统干的其实都是一件事情,分布式系统有分工的。

分布式系统两种流:控制流、数据流

 

架构设计原则:

1、空间换时间

2、硬件优先级大于软件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    分布式数据库架构详解-超大门户百度案例

    我感觉很不错的宝贝,现在和大家分享,希望能够帮到大家,如果你需要可以下载看看,很适合喜欢研究技术的人员

    分布式数据库管理-第1篇.pptx

    ### 分布式数据库管理知识点详解 #### 一、分布式数据库基本概念与原理 **1.1 分布式数据库定义** - **定义**: 分布式数据库是一种由多个互连的数据库节点组成的系统,这些节点可以位于不同的地理位置或运行于...

    高性能分布式云数据库

    - **基础架构**:包括Versant Object Manager、Versant Network Layer、Versant Server等多个组件,共同构成了一个完整的分布式数据库系统。 - **双缓存架构**:采用物理缓存和逻辑缓存相结合的方式,进一步提升了...

    分布式数据课件详解

    总结来说,"分布式数据课件详解"涵盖了从理论到实践的全面知识,包括分布式数据库的基础概念、设计策略、一致性模型、优化技巧以及实际案例分析。通过学习这个课件,你将能够理解和运用分布式数据存储技术,为你的IT...

    java高级教程分布式多线程中间件-网盘整理合集

    3. **分布式架构**:介绍分布式系统的设计原则,以及如何使用各种分布式框架。 4. **中间件详解**:讲解各类中间件的工作原理和使用场景,包括消息队列、缓存、数据库连接池等。 5. **案例分析**:通过实际项目案例...

    全面讲解开源数据库中间件MyCat使用及原理视频教程

    MyCat是一个彻底开源的,面向企业应用数据库中间件,支持事务、ACID、可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群,并结合传统数据库和新型分布式数据仓库的新一代企业级数据库中间件产品。...

    MySQL分布式数据库集群高可用设计及应用

    标题与描述:“MySQL分布式数据库集群高可用设计及应用”这一主题深入探讨了如何构建和维护一个高可用性的MySQL分布式数据库集群。在IT行业中,数据库的高可用性是确保业务连续性和数据安全的关键因素之一,特别是在...

    otter分布式数据库同步系统 v4.2.18.zip

    《Otter分布式数据库同步系统详解》 Otter是一款开源的分布式数据库同步系统,主要用于实现数据库间的实时数据同步,尤其在大数据环境下,对于实时性要求较高的业务场景,Otter发挥着至关重要的作用。版本v4.2.18是...

    Hbase分布式数据库 v1.7.2.zip

    **HBase分布式数据库详解** HBase,全称为Apache HBase,是构建在Hadoop文件系统(HDFS)之上的开源、非关系型、分布式数据库。它属于NoSQL数据库的一种,特别适合于处理海量数据,尤其适用于实时读写操作。HBase v...

    分布式存储架构实践

    ### 分布式存储架构实践 在信息技术领域,随着数据量的急剧增长以及对数据处理能力需求的提升,分布式存储系统成为解决大规模数据管理和处理的有效手段之一。本文将围绕“分布式存储架构实践”的主题展开,结合给定...

    Hbase分布式数据库 v2.4.16.zip

    **HBase 分布式数据库详解** HBase 是一个基于谷歌 Bigtable 模型设计的开源分布式数据库,属于 Apache Hadoop 生态系统的一部分。HBase 2.4.16 版本是其稳定版本,提供了高可靠性和高性能的数据存储解决方案,尤其...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    30-门户分布式数据库架构案例分享03.mp4 31-门户分布式数据库架构案例分享04.mp4 32-门户分布式数据库架构案例分享05.mp4 第十五部 MySQL数据库优化思想与优化实战(9节) 1-网站打开慢mysql问题多解决方案企业案例...

    .NET分布式编程-C#版

    ### .NET分布式编程-C#版知识点详解 #### 1. 分布式编程概念与背景 - **分布式编程定义**:分布式编程是指多个物理上独立的组件(如多台计算机)作为一个整体协同工作来解决问题的过程。这些组件之间通过网络通信...

    ZooKeeper-分布式过程协同技术详解 PDF

    - 分布式数据库如Cassandra也会利用Zookeeper进行节点间的协调。 综上所述,《ZooKeeper-分布式过程协同技术详解》全面介绍了Zookeeper的各个方面,对于理解分布式系统中的协调问题和实施解决方案有着重要的指导...

    数据库分类大全.docx

    分布式数据库** - **简介**:数据分布在网络中的多个物理节点上,通过网络进行通信和协调。 - **特点**: - 实现数据的全局一致性和可用性。 - 适用于大规模数据处理和高并发访问。 - **例子**:Cassandra、...

    大数据架构详解 从数据获取到深度学习.pptx

    大数据架构详解 从数据获取到深度学习 本书《大数据架构详解:从数据获取到深度学习》旨在帮助读者深入理解大数据架构和深度学习技术的细节,以及它们在现实世界中的应用。书中涵盖了大数据和深度学习的背景和现状...

    2017年上半年数据库系统工程师考试真题案例分析和答案(上午+下午)

    6. 分布式数据库:分布式数据库系统的概念,CAP定理,数据复制与分区策略,以及分布式事务处理。 7. 数据仓库与数据挖掘:数据仓库的架构,OLAP(在线分析处理)的操作,以及数据挖掘的基本方法和技术。 8. NoSQL...

    java 数据库编程

    ### Java数据库编程知识点详解 #### 一、Java在企业级应用中的角色 - **企业级应用的特点**:企业级应用通常具有高度复杂性、高可用性、安全性等特性。它们通常涉及多用户环境下的数据处理任务,如事务管理、安全...

Global site tag (gtag.js) - Google Analytics