移动基于Percona XTRADB Cluster的大数据解决方式
    
    一、移动的去IOE之旅
    

近期由于“棱镜门”事件的曝光。引起了国家对信息安全问题的注意。各大行业也开展起来去“IOE”的行动。对移动而言, 一方面是对信息安全的操心。还有一方面是对减少成本的考量。对开源体系架构的引入也成为一种现实的方案。

在互联网行业。MySQL的使用成为主流,但随着Oracle对Sun的收购,MySQL的控制权落入Oracle手中,对MySQL可能闭源的风险也成为业界的共识。

由此。产生了各种MySQL的分支。

本文主要对当中的PerconaXtraDB作为数据库方案进行了分析。


     二、Percona STRADB Cluster分析

Percona XtraDBCluster是MySQL高可用性和可扩展性的解决方式.

Percona XtraDBCluster提供的特性有:

1.同步复制,事务要么在全部节点提交或不提交。

2.多主复制。能够在随意节点进行写操作。

3.在从server上并行应用事件,真正意义上的并行复制。

4.节点自己主动配置。

5.数据一致性。不再是异步复制。

Percona XtraDBCluster全然兼容MySQL和Percona Server,表如今:

1.数据的兼容性

2.应用程序的兼容性:无需更改应用程序

集群特点:

Ø 集群是有节点组成的,推荐配置至少3个节点,可是也能够执行在2个节点上。

Ø 每一个节点都是普通的mysql/perconaserver,能够将现有的数据库server组成集群,反之,也能够将集群拆分成单独的server。

Ø 每一个节点都包括完整的数据副本。

长处例如以下:

1.当运行一个查询时,在本地节点上运行。

由于全部数据都在本地,无需远程訪问。

2.无需集中管理。

能够在不论什么时间点失去不论什么节点,可是集群将照常工作。

3.良好的读负载扩展,随意节点都能够查询。

缺点例如以下:

1.增加新节点。开销大。须要复制完整的数据。

2.不能有效的解决写缩放问题,全部的写操作都将发生在全部节点上。

3.有多少个节点就有多少反复的数据。

架构图例如以下:

Percona XtraDB Cluster与MySQL Replication差别在于:

分布式系统的CAP理论:

C—一致性。全部节点的数据一致;

A—可用性,一个或多个节点失效。不影响服务请求;

P—分区容忍性,节点间的连接失效,仍然能够处理请求;

不论什么一个分布式系统,须要满足这三个中的两个。

MySQLReplication: 可用性和分区容忍性;

Percona XtraDBCluster: 一致性和可用性。

因此MySQL Replication并不保证数据的一致性。而Percona XtraDB Cluster提供数据一致性。

Percona XtraDBCluster组件:

Percona XtraDB Cluster基于XtraDB的PerconaServer以及包括写复制集补丁。使用Galera 2.xlibrary,事务型应用下的通用的多主同步复制插件。

Galera 2.x新特性有:

1.IST(IncrementalState Transfer)增量状态传输。对于WAN特别实用。

2.RSU(RollingSchema Update)旋转更新架构。不会阻止对表进行操作。

     三、基于Percona STRADB Cluster的系统架构
     
     扩展性架构
  

垂直分片:

->多个Percona XTRADB Cluster;
->Spring配置多个数据源;

水平分片:

->多个PerconaXTRADB Cluster;
->Guzz实现数据水平切片和ORM;

   LVS+Keepalived扩展:
採用三层交换机的等价路由技术最多可配置8台LVSserver,每台都是Master,LVS配置成DR模式,消除了LVS瓶颈。



     五、总结
     我们准备在移动某互联网项目中使用以上方案,经測算在5000万PV、10000并发的情况下。须要1,828,571tpmC 的server一台。按8台LVSserver,每台转发100个Percona
XTRADB集群,每一个集群8台server计算(集群内每一个节点数据同样),相当于8X100=800台server。每台servertpmC按1,807,347,支持5000万PV计算,即800X5000万=4000000万PV。足够满足该项目的需求了。
     
     以上方案还需在兴许的持续运营中进行验证。请大家批评斧正!
     

移动基于Percona XTRADB Cluster的大数据解决方式的更多相关文章

  1. mysql高可用之PXC(Percona XtraDB Cluster)

    简介 Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下: 1).同步复制,事务要么在所有节点提交或不提交 ...

  2. Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication

    Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication Overview Galera Cluster 由 Coders ...

  3. Percona XtraDB Cluster Strict Mode(PXC 5.7)

    在Percona XtraDB Cluster集群架构中,为了避免多主节点导致的数据异常,或者说一些不被支持的特性引发的数据不一致的情形,PXC集群可以通过配置pxc_strict_mode这个变量来 ...

  4. Percona XtraDB Cluster

    简介 Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下: 1.同步复制,事务要么在所有节点提交或不提交. ...

  5. Percona XtraDB Cluster(PXC) Mysql 集群

    Percona XtraDB Cluster(PXC)   ---原理介绍篇         目录 一.简介 1 二.优缺点 2 三.区别/局限性 3 四. PXC复制原理 4 五. 服务解释 5   ...

  6. Percona XtraDB Cluster(转)

    Percona XtraDB Cluster是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server .其包括了Write Set REPlication补丁,使用Galera ...

  7. MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

    MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...

  8. Percona XtraDB Cluster 的一些使用限制(PXC 5.7)

    Percona XtraDB Cluster有众多的优秀特性,使得mysql集群得以轻松实现.但是不要忽略了它的一些限制.如果你无法接受,或者你的应用程序或数据库(比如使用了memory引擎)对限制无 ...

  9. Percona XtraDB Cluster高可用与状态快照传输(PXC 5.7 )

    Percona XtraDB Cluster(下称PXC)高可用集群支持任意节点在运行期间的重启,升级或者意外宕机,即它解决了单点故障问题.那在这个意外宕机或者重启期间,该节点丢失的数据如何再次进行同 ...

随机推荐

  1. js几种创建对象的方式

    javascript是一种“基于prototype的面向对象语言“,与java有非常大的区别,无法通过类来创建对象.那么,既然是面象对象的,如何来创建对象呢? 一.通过”字面量“方式创建. 方法:将成 ...

  2. spark简单总结—短小精悍

    Spark是基于内存计算的大数据并行计算框架.因为其基于内存计算,较Hadoop中MapReduce计算框架具有更高的实时性,同时保证了高效容错性和可伸缩性.从2009年诞生于AMPLab到现在已经成 ...

  3. 并发研究之Java内存模型(Java Memory Model)

    Java内存模型JMM java内存模型定义 上一遍文章我们讲到了CPU缓存一致性以及内存屏障问题.那么Java作为一个跨平台的语言,它的实现要面对不同的底层硬件系统,设计一个中间层模型来屏蔽底层的硬 ...

  4. Codeigniter使用HMVC(一)

    涉及三方代码: https://tutorials.kode-blog.com/codeigniter-admin-panel https://bitbucket.org/wiredesignz/co ...

  5. Codeforces Round #310 (Div. 2)

    Problem A: 题目大意:给你一个由0,1组成的字符串,如果有相邻的0和1要消去,问你最后还剩几个字符. 写的时候不想看题意直接看样例,结果我以为是1在前0在后才行,交上去错了..后来仔细 看了 ...

  6. 【Java】 剑指offer(67) 把字符串转换成整数

      本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 请你写一个函数StrToInt,实现把字符串转换成整数这个功能 ...

  7. Ubuntu 开机自启动SSH+远程关机

    Ubuntu 开机自启动SSH+远程关机   安装SSH 如何通过ssh远程登录linux系统 开机自启动ssh sudo gedit /etc/rc.locl # 输入密码 # 添加下面命令于 ex ...

  8. 002.Heartbeat部署及httpd高可用

    一 前期准备 1.1 依赖准备 编译安装需要依赖的包,如gcc等: yum -y install gcc gcc-c++ make glibc kernel-devel kernel-headers ...

  9. Python常用模块--datetime

    datetime是Python专门用于处理日期和时间的标准模块. 1.获取当前的本地时间 #!/usr/bin/env python# -*- coding:utf-8 -*-__author__ = ...

  10. C#读取大数据量Excel

    var worksheet = workbook.Worksheets["工作表1"]; var maxN = worksheet.Range["A1"].En ...