colease函数 mysql_微信开源PhxSQL:高可用、强一致的MySQL集群

PhxSQL是微信团队研发的分布式数据库服务,基于Percona5.6,旨在解决MySQL在容灾和数据一致性上的问题。它采用Paxos协议实现多节点强一致性,并提供了高可用性和简单的运维操作。当Master节点失效时,集群能自动重新选举新的Master。此外,PhxSQL与MySQL完全兼容,支持一键更换集群内的机器。
摘要由CSDN通过智能技术生成

PhxSQL 是由微信后台团队自主研发的一款服务高可用、数据强一致的分布式数据库服务。该服务基于 Percona5.6 搭建,目标在于解决 MySQL 在容灾和数据一致性方面的不足,并大幅简化了 MySQL 容灾切换的运维操作。

作者: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)

总览

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

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

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

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

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

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

项目中包含 PhxSQL 源代码,源代码编译时所需要的一些第三方库,及可直接在 Linux 环境下运行的二进制包。其中代码使用到了微信团队自研的另外三个开源项目(phxpaxos,phxrpc,colib)。若需编译源代码,需额外下载,也可以在 clone 时通过--recurse-submodule 获得代码。

PhxSQL 编译

如果是直接使用二进制包,请跳过这节。

PhxSQL 主要目录结构

PhxSQL

phxsqlproxy

phxbinlogsvr

percona

phx_percona

plugin

phxsync_phxrpc

semisync

third_party

glog

leveldb

Protobuf

phxpaxos

colib

phxrpc

tools

phxrpc_package_config

主要目录介绍

目录名

phxsqlproxy

phxsqlproxy 模块,负责接入请求。

phxbinlogsvr

负责 MySQL binlog 数据同步,master 管理等。

percona

percona5.6.31-77.0 的官方源代码

phx_percona/plugin/phxsync_phxrpc

percona 用于跟 phxbinlogsvr 同步 binlog 的插件。

phx_percona/plugin/semisync

因兼容问题,修改了 semisync 的部分代码,目录内为修改过的文件。

thir

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值