前言
上周写完了服务暴露总结之后发现遗漏了一个很重要的点,在dubbo源码解析-zookeeper连接中我们对面试高频题
dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者和订阅者还能通信吗进行了解析....知道dubbo会对zookeeper的信息进行一个本地的文件缓存.如果你只是简单的回答出这个本地的文件缓存,可能面试官会点到为止,但是如果你按照我那样从源码角度分析,甚至连缓存到哪个磁盘文件都一清二楚...,那么面试官必然会根据这个问题深入问下去.既然要深入问下去,那他会从哪个角度问呢比如公司新来了妹子,老司机们在下班的时候总会套路一下,问她们你男朋友怎么不接你下班啊.这个时候妹子的回答往往也就两个,一个是我没有男朋友啊...直入主题
这个方法是我们的老朋友了,我们在前面的zookeeper连接和zookeeper创建节点的时候都已经见过(图中蓝色标注的),这次我们还是讲一行代码(红色标注的)
这里就开始发起订阅请求和订阅失败重试...的api)
下面要开始更新新的服务信息,服务启动和节点更新回调(前面设置了回调到这里)都会调用到这里
那么下面就要敲黑板划重点了,由前期铺垫我们就知道这里要开始更新本地缓存文件的信息
这里采用了线程池来更新