iunknown 发表于 2016-07-10 19:55

微信开源生产级paxos类库PhxPaxos

本帖最后由 iunknown 于 2016-07-10 19:56 编辑

项目地址
https://github.com/tencent-wechat/phxpaxos

实现原理
微信自研生产级paxos类库PhxPaxos实现原理介绍

疯子影子 发表于 2016-07-13 18:04

:mrgreen::D

cjfeii 发表于 2016-07-22 11:44

phxpaxos使用C++实现的哦

cjfeii 发表于 2016-07-22 11:45

和zookeeper有什么区别吗?

iunknown 发表于 2016-07-30 16:19

本帖最后由 iunknown 于 2016-07-30 16:20 编辑

回复 4# cjfeii

简单来说,zk 是一个完整的模块,能拿来和 phxpaxos 对应的只是其中的 zab 协议实现;zk 基于 zab 协议,以目录和文件的形式给出操作接口,对于一些简单的场景(比如选主、获取变更的notify),比起裸的 zab 协议库更容易使用一些。

但是对于另外一些场景,使用 zk 可能无法实现功能,必须要使用一个协议库。比如实现一个数据强一致的分布式队列,或者强一致的分布式binlog存储。


针对一些常用的场景,phxpaxos为了方便开发者使用,也做了一些封装。比如最常用的选主功能,用起来也很简单。使用PhxPaxos的Master,给你的Server提供一个选举功能

这里先解释一下Master的定义,Master是指在多台机器构建的集合里面,任一时刻,只有一台机器认为自己是Master或者没有任何机器认为自己是Master。

这个功能非常实用。假设有那么一个多台机器组成的集群,我希望任一时刻只有一台机器在提供服务,相信大家可能会遇到这样的场景, 而通常的做法可能是使用ZooKeeper来搭建分布式锁。那么使用我们的Master功能,只需编写短短的几十行代码, 即可跟你现有的服务无缝结合起来,而不用引入额外的一些庞大的模块。

cjfeii 发表于 2016-08-01 08:43

赞{:qq11:}

选主只需要几十行代码?

回复 5# iunknown


   
页: [1]
查看完整版本: 微信开源生产级paxos类库PhxPaxos