微信开源生产级paxos类库PhxPaxos
本帖最后由 iunknown 于 2016-07-10 19:56 编辑项目地址
https://github.com/tencent-wechat/phxpaxos
实现原理
微信自研生产级paxos类库PhxPaxos实现原理介绍 :mrgreen::D phxpaxos使用C++实现的哦 和zookeeper有什么区别吗? 本帖最后由 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功能,只需编写短短的几十行代码, 即可跟你现有的服务无缝结合起来,而不用引入额外的一些庞大的模块。 赞{:qq11:}
选主只需要几十行代码?
回复 5# iunknown
页:
[1]