dubbo原理和机制_96,Dubbo高频面试题

来点Dubbo相关的面试题

1,问:当zookeeper挂了之后,生产者和消费者之间还能通信吗?

答:可以。

因为当启动dubbo容器时,消费者会去zookeeper拉取注册的生产者地址列表,并将其缓存在本地。每次发起调用时,都会按照本地的地址列表,以负载均衡的策略去进行调用。

但是如果zookeeper挂掉了,则后续新的生产者无法被消费者发现。

2,问:当监控中心monitor挂了之后,生产者和消费者之间还能通信吗?

答:可以。

因为监控中心主要是起到一个收集数据的作用,监控中心宕机,只会影响采集数据,不影响生产者和消费者之间的通信。

3,问:zookeeper实际是如何存储生产者和消费者信息?

答:zookeeper采用树状结构来存储相关的信息,会创建相关的znode节点来存储信息。

如图所示:

33bb18d73bc4dff09080335889d3d07a.png

流程说明:

  • 服务提供者启动时: 向 /dubbo/com.foo.BarService/providers 目录下写入自己的 URL 地址
  • 服务消费者启动时: 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者 URL 地址。并向 /dubbo/com.foo.BarService/consumers 目录下写入自己的 URL 地址
  • 监控中心启动时: 订阅 /dubbo/com.foo.BarService 目录下的所有提供者和消费者 URL 地址。

4,谈谈Dubbo的负载均衡策略,请查阅之前已经讲过的文章链接

黄桂钊:10,Dubbo的负载均衡策略​zhuanlan.zhihu.com

5,谈谈采用注册中心和直连的区别?

首先,生产者和消费者可以采用直连的方式进行通信,即点对点的通信方式,但是我们更推荐采用注册中心的方式,因为注册中心在这其中,起到了一个解耦的作用,而消费者只需要获取到生产者的地址列表,就可以采用负载均衡的方式去调用。

6,谈谈Dubbo底层的通信原理

Dubbo底层通信,默认采用高性能的Netty通信框架,实现网络通信,Netty是一个高性能的NIO通信框架,所以聊到底层原理,就要从NIO的特点来聊起。

NIO是如何做到多路复用机制的,以及Netty在此基础之后,又增加了主从线程池来进行优化,结合这两方面进行讲解即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值