zookeeper
stevewongbuaa
这个作者很懒,什么都没留下…
展开
-
带着问题撸源码系列-zookeeper-内存的数据如何持久化到硬盘
问题带着问题撸源码系列-zookeeper-内存的数据如何持久化到硬盘猜测这种一般都是有个定时任务往硬盘写吧源码原创 2020-05-19 17:48:30 · 249 阅读 · 0 评论 -
带着问题撸源码系列-zookeeper-datatree是什么鬼?
问题带着问题撸源码系列-zookeeper-datatree是什么鬼?源码直接看源码就好了其实就是一个树形结构里面先保存了所有的DataNodeKey是节点路径,如/p1/c1,value就是对应的DataNode。DataNode:用一个Set<String>保存这个节点的孩子。String,是下一个节点的名字,如当前是/p1/c1,父亲是/p1,那么他的孩子就是c1。...原创 2020-05-19 17:45:52 · 566 阅读 · 0 评论 -
带着问题撸源码系列-zookeeper-临时节点[ephemeral]是怎么弄的?我写了一堆临时节点为啥我一掉线就全没了?
问题带着问题撸源码系列-zookeeper-临时节点[ephemeral]是怎么弄的?我写了一堆临时节点为啥我一掉线就全没了?猜测可能是有线程维护着,每个session有一个临时节点列表,一旦客户端不再发心跳就全干掉源码debugrun server 1(follower)debug server 2 (leader)client 请求server2: create -e /t1...原创 2020-05-19 11:18:41 · 1052 阅读 · 0 评论 -
带着问题撸源码系列-zookeeper-客户端发写请求,最终怎么通过2PC同步到集群所有机器?
问题带着问题撸源码系列-zookeeper-客户端发写请求,最终怎么通过2PC同步到集群所有机器?猜测we all know the 2PC, but how exactly does it work?理论上,就是leader接收到请求,然后发给Prepare,让小伙伴们准备好,过半数人回复ok了之后,leader回复客户端,然后再发Commit请求让小伙伴们真正提交源码Follower接收到客户端的写请求,会先根据责任链调下一个Processor,然后把写请求转发给Leader。leader原创 2020-05-14 19:06:56 · 284 阅读 · 0 评论 -
带着问题撸源码系列-zookeeper-客户端先写后读,怎么保证能读到写的数据?
问题带着问题撸源码系列-zookeeper-客户端先写后读,怎么保证能读到写的数据?猜测从我们的系列文章上一篇:带着问题撸源码系列-zookeeper-客户端发读请求给follower,是转发给leader读还是读自己?分析过程中可以看到,在处理请求的时候,有一些神奇的队列帮助处理这个问题。我们猜测就是通过这些队列,把读请求放在写请求后边。下面让我们来探讨细节吧。读源码由于上一篇:带着问题撸源码系列-zookeeper-客户端发读请求给follower,是转发给leader读还是读自己?原创 2020-05-14 15:33:12 · 582 阅读 · 0 评论 -
带着问题撸源码系列-zookeeper-不同的RequestProcessor之间是什么关系,如何协调?
问题带着问题撸源码系列-zookeeper-不同的RequestProcessor之间是什么关系,如何协调?参考思考了颇久实在没找到突破的方法,只好找网上文章找突破口了:添加链接描述读源码在这里配置每个RequestProcessor的关系,先调用哪个再调用哪个:org.apache.zookeeper.server.quorum.FollowerZooKeeperServer#setupRequestProcessors可以看到是可以看到,第一个是FollowerRequestProc原创 2020-05-14 11:42:31 · 277 阅读 · 0 评论 -
带着问题撸源码系列-zookeeper-客户端发读请求给follower,是转发给leader读还是读自己?
问题带着问题撸源码系列-zookeeper-客户端发读请求给follower,是转发给leader读还是读自己?猜测读自己就行了吧。不过可能要考虑当前有没有在写之类的。读源码参考写请求的分析还把断点打在消费queue消息这儿设置条件断点,如果是ping(request.type==11)请求咱就不断点了。回答问题...原创 2020-05-13 19:02:49 · 764 阅读 · 4 评论 -
带着问题撸源码系列-zookeeper-客户端发写请求给follower,是转发给leader写?
问题带着问题撸源码系列-zookeeper-客户端发写请求给follower,是转发给leader写?猜测是要转发给leader写预读源码首先得看下在哪接受请求呢?由于之前在带着问题撸源码系列-zookeeper-客户端怎么给sever发请求 有看见clientCnxn,所以我们猜测接收请求是在ServerCnxnBTW, Cnxn是什么鬼????? /** * Interface to a Server connection - represents a connection fr原创 2020-05-13 15:06:27 · 739 阅读 · 0 评论 -
带着问题撸源码系列-zookeeper-源码调试选举过程 附mac环境搭建
参考https://blog.csdn.net/po_lao/article/details/52562590过程从github clone到本地安装ant来编译brew install ant换方式https://juejin.im/post/5c7be8546fb9a049c6449089https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper/3.4.13/zookeeper-3.4.13-sources.jar下载原创 2020-05-12 16:37:30 · 338 阅读 · 0 评论 -
带着问题撸源码系列-zookeeper-客户端怎么给sever发请求
问题客户端怎么给server发请求?猜测parse 输入的command 然后通过某种方式发给server。预读代码从客户端main代码org.apache.zookeeper.ZooKeeperMain看起,看下怎么给server发请求的。慢慢追踪到这:org.apache.zookeeper.ZooKeeperMain#processZKCmd就是这里:假设我们现在要发一个create /test实现类就是CreateCommandparse不管看exec函数一通操作后走到了原创 2020-05-13 11:37:43 · 228 阅读 · 0 评论 -
带着问题撸源码系列-zookeeper-index
带着问题撸源码系列-zookeeper-源码调试选举过程 附mac环境搭建带着问题撸源码系列-zookeeper-客户端怎么给sever发请求原创 2020-05-13 11:53:17 · 211 阅读 · 0 评论