kimserver 是多进程异步框架,而 zookeeper-client-c 工作模式是多线程,本章整理一下将它们整合的思考过程。
1. what
先阅读 zookeeper-client-c 源码,查看它的工作方式。
2. how
- 异步。
- 同步。
3. why
zookeeper-client-c 无论同步方式还是异步,都是通过多线程实现的。同步方式多好啊,很多逻辑不需要通过回调被打散。
- 新建一个线程跑同步接口,处理结果放到任务完成队列。
- zookeeper-client-c 通知被写进任务完成队列。
- 主线程消费任务完成队列。
4. 小结
从上面几个图,思路从复杂到简单,直到逻辑碎片被串联起来,这样多线程的 lib 添加进来后,不会破坏 kimserver 异步服务原来的逻辑。