高可用强一致的MySQL集群 PhxSQL

BSD
C/C++
Linux
腾讯
2016-08-30
红薯

PhxSQL是一个兼容MySQL、服务高可用、数据强一致的关系型数据库集群。PhxSQL以单Master多Slave方式部署,在集群内超过一半机器存活的情况下,可自身实现自动Master切换,且保证数据一致性。  

PhxSQL 架构:

PhxSQL基于Percona 5.6开发。Percona是MySQL的一个分支,功能和实现与MySQL基本一致。因此本文后续直接把MySQL作为讨论对象。

总览:

  • PhxSQL具有服务高可用、数据强一致、高性能、运维简单、和MySQL完全兼容的特点。

  • 服务高可用:PhxSQL集群内只要多数派节点存活就能正常提供服务;出于性能的考虑,集群会选举出一个Master节点负责写入操作;当Master失效,会自动重新选举新的Master。

  • 数据强一致:PhxSQL采用多节点冗余部署,在多个节点之间采用paxos协议同步流水,保证了集群内各节点数据的强一致。

  • 高性能:PhxSQL比MySQL SemiSync的写性能更好,得益于Paxos协议比SemiSync协议更加高效;

  • 运维简单:PhxSQL集群内机器出现短时间故障,能自动恢复数据,无需复杂的运维操作;PhxSQL更提供一键更换(新增/删除)集群内的机器,简化运维的工作。

  • MySQL完全兼容:PhxSQL是基于Percona的研发,完全兼容MySQL的操作命令。 可通过MySQL提供的mysqlclient/perconaserverclient直接操作PhxSQL。

PhxSQL 依赖于腾讯微信团队的另外几个开源项目:PhxRPCLibco 以及 PhxPaxos

作者:Junchao Chen (junechen@tencent.com), Haochuan Cui (lynncui@tencent.com), Duokai Huang (mariohuang@tencent.com), Ming Chen (mingchen@tencent.com) 和 Sifan Liu (stephenliu@tencent.com)

加载中

评论(7)

l
liminghua888
Mark
Aorey
Aorey
mark
qinsg
qinsg
非常好的方案。
柚子ban
柚子ban
你敢用么 #PhxSQL#
plpcoder
plpcoder
paxos #PhxSQL#
金贞花
金贞花
lock #PhxSQL#
MartinBockZhu
MartinBockZhu
mark #PhxSQL#

微信开源 PhxSQL:高可用强一致的 MySQL 集群

昨日,微信后台团队宣布其开源了 PhxSQL 项目,并将项目托管到 Github 上。 PhxSQL 是一个兼容 MySQL、服务高可用、数据强一致的关系型数据库集群。PhxSQL 以单 Master 多 Slave 方式部署,在...

2016/08/31 07:28

没有更多内容

加载失败,请刷新页面

没有更多内容

6
回答
看其架构图上提到,所有的读写请求全部转到master。难道slave不可以协助处理读吗?

看其架构图上提到,所有的读写请求全部转到master。难道slave不可以协助处理读吗?

2016/09/18 17:52

没有更多内容

加载失败,请刷新页面

没有更多内容

mysql主从复制原理

MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出...

2018/11/20 16:52
42
0
CentOS系统 Amoeba+MySql主从读写分离配置

一、安装mysql的三种方式 安装 Percona 分支版本的 MySQL。性能超越标准的 MySQL。 上传解压 首先安装 cmake yum –y install cmake //也需要安装 gcc-c++,openssl openssl-devel。 前面已经...

2018/12/20 15:27
23
0
如何基于MySQL及Redis搭建统一的KV存储服务

本文介绍基于MySQL及Redis搭建统一的kv存储服务:常用部署方式及其特点,Cluster manager,MySQL和Redis集群方案,以及Sync数据同步服务。 一、MySQL+Redis 常用部署方式 1.1 拓扑 1.2 特点 ...

2018/04/22 23:56
65
0
10款常见MySQL高可用方案选型解读

一、概述 我们在考虑MySQL数据库的高可用架构时,主要考虑如下几方面: 如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库...

2018/04/25 22:59
4.4K
7
几种常见的消息中间件对比

常见消息中间件介绍 当前使用较多的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ等,而部分数据库如Redis、MySQL以及phxsql也可实现消息队列的功能。 消息队列概述 消息队...

02/20 10:18
862
0
大数据利器2018版

类别 名称 (可重点关注加粗部分) 官网 备注 查询引擎 Phoenix https://phoenix.apache.org/ Salesforce公司出品,Apache HBase之上的一个SQL中间层,完全使用Java编写 Presto http://pres...

2018/12/29 15:51
26
0
如何设计和实现高可用的MySQL

下面开始我们今天的主要内容,今天主要是通过什么、为什么、怎么做,这条思路跟大家呈现MySQL的高可用。 首先介绍一下什么是高可用?在我看来就是业务在高质量的情况下,对用户提供服务的可运...

2018/11/08 15:51
8
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部