之前发表过一篇ppt版的“PhxSQL设计与实现”,本文是在ppt的基础上,加上解说的文字内容,形成一篇详细版。 本文详细描述了PhxSQL的设计与实现。...图10 可靠日志存储和Agent共同实现自动选主机制 PhxSQL架构和实现 从上述思路可以得出PhxSQL的简单三层架构。...图11 PhxSQL基本架构 Proxy(PhxSQLProxy) 请求透传 请求透传是Proxy主要的功能。...PhxSQL效果 PhxSQL数据一致性 通过比较PhxSQL集群中各节点的数据(MySQL Binlog,PhxPaxos,BinlogSvr) 判断各节点数据是否一致,如图18所示。...图19 PhxSQL进行Master切换时各节点的写入流量变化 PhxSQL性能 MySQL版本:Percona 5.6.31-77.0 机器信息: CPU :Intel Xeon CPU E5-2420
摘要 上一章讨论了我们为什么要做PhxSQL和为什么这样做PhxSQL。这里我们主要谈谈为什么不做某些特性。舍得舍得,有舍才有得。CAP告诉我们只能三选二,俗话告诉我们天下没有免费的午餐。...这时PhxSQL的写延迟只有4ms! 相比Paxos这类协议,原子广播还有一个缺陷。...因为PhxSQL本身的容错性,这样做比在MySQL基础上直接构建要简单,无需关心每个sharding本身的出错。如果以后有需求,PhxSQL团队也可能基于PhxSQL开发一个分库分表的新产品。...事实上,PhxSQL已经显著提升了MySQL主备的写入性能。与semi-sync比,在测试环境中,PhxSQL的写入性能比semi-sync高16%到25%以上。读性能持平。...鉴于PhxSQL对MySQL的改动是如此之小,对性能有高要求的读者,可以方便地把PhxSQL中的MySQL换成其它高性能版本,获得更高性能。 7.5. 为什么编译时不支持C++11以下标准?
PhxSQL是一个通过Paxos保证强一致和高可用的的MySQL集群。PhxSQL建立在Paxos的一致性和MySQL的binlog流水基础上。...图 1:PhxSQL架构 2. PhxSQL的”强一致“和”高可用“是什么级别? 很多MySQL集群方案都宣称强一致和高可用。PhxSQL这方面有什么不同?...(a) (b) 图 2:PhxSQL对MySQL的关键修改。(a)是MySQL。(b)是PhxSQL中的MySQL。...开发人员可以直接链接PhxSQL client lib。 PhxSQL的部署和运维都很简单。在部署时,只要在目标机各自装好PhxSQL,在配置中指定集群的机器的IP列表,PhxSQL即可运行。...PhxSQL通过在Paxos中实现成员变更解决了这个难题。PhxSQL提供了一个变更操作命令。
经过微信后台团队的潜心钻研,基于PhxPaxos定制的强一致、高可用、高性能的PhxSQL便横空出世。 PhxSQL 他是谁?...(基本介绍) PhxSQL(GitHub上他的传记:https://github.com/Tencent/phxsql) 是在MySQL为基础,搭建的一套MySQL分布式系统,涵盖了自动容灾处理,自动数据同步等机制...必杀技二:容灾策略 PhxSQL的master管理 PhxSQL的master由Binlogsvr管理。Binlogsvr通过paxos完成master的选举,达到master的原子切换。...PhxSQL的前端路由 PhxSQL的前端路由通过PhxSQLproxy来完成。...谈谈PhxSQL的设计和实现哲学(上) 谈谈PhxSQL的设计和实现哲学(下) * PhxSQL设计与实现(详细版) 微信开源PhxSQL:高可用、强一致的MySQL集群 PhxRPC 微信开源C/C
-- sunnyxu@tencent.com 继协程libco库之后,微信后台团队开源了三个项目: PhxSQL PhxSQL是一个兼容MySQL、服务高可用、数据强一致的关系型数据库集群。...PhxSQL以单Master多Slave方式部署,在集群内超过一半机器存活的情况下,可自身实现自动Master切换,且保证数据一致性。...PhxSQL具有服务高可用、数据强一致、高性能、运维简单、和MySQL完全兼容的特点。...开源项目地址:https://github.com/Tencent/phxsql PhxPaxos PhxPaxos是腾讯公司微信后台团队自主研发的一套基于Paxos协议的多机状态拷贝类库。
7、PhxSQL PhxSQL是一个兼容MySQL、服务高可用、数据强一致的关系型数据库集群。...PhxSQL以单Master多Slave方式部署,在集群内超过一半机器存活的情况下,可自身实现自动Master切换,且保证数据一致性。
其实,事务t1是要被遗弃的小可怜(鹅厂PhxSQL团队称这种事务为“Pending Binlog”) 因为也没有返回给客户端它成功提交的信息,这种情况是要回滚的,而且这种情况在after_sync(lossless...方案2需要一定的开发量,参(bai)考(piao)了一下别人的做法: 微信PhxSQL: 额外多一个BinlogSvr的中间服务。...其他一致性方案或思路: 1、Paxos\Raft 2、共享存储 参考 《PhxSQL设计与实现》,google一搜就有 《Loss-less Semi-Synchronous Replication on
正因为MySQL在主备数据一致性存在着这些问题,影响了互联网业务7*24的高可用服务,因此各大公司纷纷祭出自己的“补丁”:腾讯的TDSQL、微信的PhxSQL、阿里的AliSQL、网易的InnoSQL。...Availability Solutions Loss-less Semi-Synchronous Replication on MySQL 5.7.2 Enhanced semisync replication PhxSQL
GitHub地址:https://github.com/tencent-wechat/phxsql PhxSQL是一个兼容MySQL、服务高可用、数据强一致的关系型数据库集群。...PhxSQL以单Master多Slave方式部署,在集群内超过一半机器存活的情况下、即可提供服务,并且自身实现自动Master切换、保证数据一致性。...PhxSQL不依赖于ZooKeeper等任何第三方做存活检测及选主。PhxSQL基于MySQL的一个分支Percona 5.6开发,功能和实现与MySQL基本一致。...为了解决这个问题,并同时完全兼容MySQL,微信在MySQL的基础上应用Paxos,设计和开发了PhxSQL。
(详情: https://github.com/Tencent/Tars) 9、MySQL集群PhxSQL ★Star 1759 ?...PhxSQL是一个基于Paxos和Percona的高可用性和强大的一体化MySQL集群,PhxSQL以单Master多Slave方式部署,在集群内超过一半机器存活的情况下,可自身实现自动Master切换...(详情:https://github.com/tencent-wechat/phxsql) 10、超轻量级 Web 手势库AlloyFinger ★Star 1734 可以看到hammerjs体积远远大于
当前使用较多的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq等,而部分数据库如Redis、Mysql以及phxsql也可实现消息队列的功能。
不仅仅微信终端,微信后台也开源了大量优秀的项目,phxsql、phxpaxos 以及文中的 libco。事实上,腾讯的开源也在大力发展中,当前也有超过 6 个项目正在审核的流程中。
也能够通过很灵活的方式去满足业务需求,如同步、半同步方式、数据副本数量、主从切换、failover 等等(下面会提到),然而我们平时使用的社区官方版 mysql5.7及以前的版本 (不包括 Mysql 其他分支像 PhxSQL...前面提到以前版本(5.7以前) mysql 对集群化支持相对较弱,但是其实 mysql 也一直在发展,社区也开发出了很多方案,像PhxSQL,Percona XtraDB Cluster,MariaDB
使用分布式协力做数据同步的方式,在近两年出现了一系列开源或闭源的产品,如腾讯的phxsql、perconna和mariadbde galera插件、社区版的Group、Tidb等。
腾讯数平的TDSQL,腾讯微信的PhxSQL,阿里的AliSQL,网易的InnoSQL等设计都是为了保证数据一致性。
而使用分布式算法用来解决MySQL数据库数据一致性的问题的方法,也越来越被人们所接受,一系列成熟的产品如PhxSQL、MariaDB Galera Cluster、Percona XtraDB Cluster
国内出名些分布式数据库, 阿里的OceanBase, PingCAP的TiDB, 微信的PhxSQL.
而使用分布式算法用来解决MySQL数据库数据一致性问题的方法,也越来越被人们所接受,一系列成熟的产品如PhxSQL、MariaDB Galera Cluster、Percona XtraDB Cluster
甚至开源了大量优秀的久经考验的内部系统,如阿里的Tair、druid、fastjson、jstorm、AliSQL、RocketMQ和腾讯的RapidJSON、libco、PhxPaxos、PhxRPC、PhxQueue、PhxSQL
领取专属 10元无门槛券
手把手带您无忧上云