PhxSQL 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
PhxSQL 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票

软件简介

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)

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (7)

加载中
Mark
2019/06/26 22:16
回复
举报
mark
2017/11/30 12:50
回复
举报
打分: 力荐
非常好的方案。
2017/04/13 17:43
回复
举报
你敢用么 #PhxSQL#
2016/08/31 08:09
回复
举报
paxos #PhxSQL#
2016/08/31 09:05
回复
举报
lock #PhxSQL#
2016/09/14 06:20
回复
举报
mark #PhxSQL#
2016/10/08 16:35
回复
举报
更多评论
发表了资讯
2016/08/31 00:00

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

昨日,微信后台团队宣布其开源了 PhxSQL 项目,并将项目托管到 Github 上。 PhxSQL 是一个兼容 MySQL、服务高可用、数据强一致的关系型数据库集群。PhxSQL 以单 Master 多 Slave 方式部署,在集群内超过一半机器存活的情况下,可自身实现自动 Master 切换,且保证数据一致性。PhxSQL 基于 Percona 5.6 开发。Percona 是 ...

25
155
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/11/17 23:23

从mysql主从复制到微信开源的phxsql

严格的来说,微信开源的phxsql不是数据库,而是一个数据库的插件; 传统的互联网数据库结构一般是这样的: 服务访问数据库是通过分片来的: 除了这种基于hash的分片,还有一种基于range的分片方式 通常,基于range的分片场景下会引入一个新的服务来保存range分片的元信息,列如etcd: 数据库连接是这样进行的: 第1步, 先监控e...

0
0
发表了博客
2018/11/20 16:52

mysql主从复制原理

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

0
0
发表了博客
2018/05/25 11:26

腾讯,排行前10的开源项目

1、Tars Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架TAF(Total Application Framework),目前支持C++和Java两种语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速开发、部署、测试、上线。 它集可扩展协议编解码、高性能RPC通信框架、名字路由与发现...

0
0
06/08 19:32

腾讯,排行前10的开源项目

1、Tars Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架TAF(Total Application Framework),目前支持C++和Java两种语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助...

0
0
发表了博客
2018/02/06 09:55

Connection is read-only. Queries leading to data modification are not allowed

看了下mysql-connector-5.1.40版本中,如果设置failoverReadOnly=true (即默认值,参考链接),当mysql连接failover时,会根据jdbc连接串将当前连接的readOnly值设置为true (第8行代码) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 private synchronized void switchCurrentConnectionTo(int hostIndex, MySQLConne...

0
0
发表了博客
2018/12/28 10:40

SQL Server数据同步的研究(单向/双向)

思路: 1、做中间件(简单:定时采集;复杂:分布式,订阅中心的形式,如微信的中间件:https://github.com/tencent-wechat/phxsql) 2、采用触发器的形式,有数据触发是进行多服务器的来回数据分发。 3、基于计划任务的形式触发存储过程进行同步,和定时任务差不多 4、采用SQL Server的发布订阅功能(注意,经过测试这个...

0
0
发表了博客
2018/06/16 17:53

activemq的启动方式

  一、简介:ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。   二、其他常用的jms的消息队列:当前使用较多的消息队列有RabbitMQ、RocketMQ、...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2016/09/18 17:52

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

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

6
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
7 评论
227 收藏
分享
返回顶部
顶部