最近一直在忙WebPageTest(以下简称wpt)开源库的修改工作,其中一项工作需要将zookeeper(以下简称zk)集成到wpt里。zk作为分布式系统的同步工具,实现了写的原子性(要么失败,要么成功,并不存在写一半的情况),并通过“选举组长“和”重选组长“,在负载均衡的同时保证数据一致性。关于zk服务端的设计,可以参考官网http://zookeeper.apache.org/。
本文阐述zk客户端的实现,一来可以梳理下思路,二来也可作为阅读笔记。
zk客户端代码比较少,完全采用C语言来实现,包括:
1、hashtable的实现
hashtable的实现,包括hashtable.h,hashtable.c,hashtable_itr.h和hasht