栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【面试普通人VS高手系列】Dubbo是如何动态感知服务下线的?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【面试普通人VS高手系列】Dubbo是如何动态感知服务下线的?

什么情况? 一个工作了5年的Java程序员,竟然无法回答出这个问题?

“Dubbo是如何动态感知服务下线的”?

好吧,对于这个问题,看看普通人和高手的回答!

部分高手面试文档已整理,需要的小伙伴可以扫描添加下方二维码

普通人:

嗯。。。。。。。。。。。。

高手:

好的,面试官,关于这个问题,我从几个方面来回答。

首先,Dubbo默认采用Zookeeper实现服务的注册与服务发现,简单来说啊,就是多个Dubbo服务之间的通信地址,是使用Zookeeper来维护的。

在Zookeeper上,会采用树形结构的方式来维护Dubbo服务提供端的协议地址

Dubbo服务消费端会从Zookeeper Server上去查找目标服务的地址列表,从而完成服务的注册和消费的功能。

Zookeeper会通过心跳检测机制,来判断Dubbo服务提供端的运行状态,来决定是否应该把这个服务从地址列表剔除。

当Dubbo服务提供方出现故障导致Zookeeper剔除了这个服务的地址,

那么Dubbo服务消费端需要感知到地址的变化,从而避免后续的请求发送到故障节点,导致请求失败。

也就是说Dubbo要提供服务下线的动态感知能力。

这个能力是通过Zookeeper里面提供的Watch机制来实现的

简单来说呢,Dubbo服务消费端会使用Zookeeper里面的Watch来针对Zookeeper Server端的/providers节点注册监听,

一旦这个节点下的子节点发生变化,Zookeeper Server就会发送一个事件通知Dubbo Client端.

Dubbo Client端收到事件以后,就会把本地缓存的这个服务地址删除,这样后续就不会把请求发送到失败的节点上,完成服务下线感知。

以上就是我对这个问题的理解!

总结

Dubbo是目前非常主流的开源RPC框架,在很多的企业都有使用。

理解这个RPC底层的工作原理很有必要,它能帮助开发者提高开发问题的解决效率。

还是想多说一句,在Java这个岗位上,如果想走得更远,一定要花苦功夫。

本期的普通人VS高手面试系列就到这里结束了。

有任何不懂的技术面试题,欢迎随时私信我

 部分高手面试文档已整理,需要的小伙伴可以扫描添加下方二维码

↓↓↓↓↓↓↓↓

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/873932.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号