Java面试题之Dubbo

一.题目介绍

1.题目来源

实际面试中遇到,形式的话有书面解答也有口述

2.题目

1)说说对Dubbo的了解,用在哪些地方?

2)Dubbo通信协议适用范围和适用场景

3)Dubbo服务负载均衡策略了解多少?

4)Dubbo连接注册中心的基本流程

二.具体解答

1.Dubbo是什么以及Dubbo的使用

Apache Dubbo提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。

如上所述Dubbo一般使用在微服务架构中,承担接口之间的调用即RPC调用,还有就是基于其内部实现的容错和负载均衡等机制,让服务于服务的调用更加的稳定高效,而且其支持扩展,可以灵活运用于一些需要自适应的场景开发。

2.Dubbo通信协议适用范围和适用场景

通讯协议有: RMI:采用JDK标准的 java.rmi.实现,采用阻塞式短连接和JDK标准序列化方式,Java 标准的远程调用协议。

适用场景:常规远程服务方法调用,与原生RMI服务互操作

Hessian:用于集成 Hessian 的服务,Hessian底层采用Http通讯,采用Servlet暴露服务,Dubbo缺省内嵌Jetty 作为服务器实现。这是用得最多的一种。

适用场景:页面传输,文件传输,或与原生hessian 服务互操作

http:采用Spring的HttpInvoker实现基于http表单的远程调用协议。

适用场景:需同时给应用程序和浏览器JS使用的服务。

Webservice:基于CXF的frontend-simple和transports-http实现基于WebService 的远程调用协议,

适用场景:系统集成,跨语言调用。

3.Dubbo服务负载均衡策略了解多少?

1)随机,按权重设置随机概率。在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比 较均匀,有利于动态调整提供者权重。

2)轮循,按公约后的权重设置轮循比率。存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调 到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。

3)一致性Hash,相同参数的请求总是发到同一提供者。当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节 点,平摊到其它提供者,不会引起剧烈变动。

4.Dubbo连接注册中心的基本流程

服务注册中心,动态的注册和发现服务,使服务的位置透明,并通过在消费方获取服务提供方地址列表,实现软负载均衡和 Failover, 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给 消费者。 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调 用。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册 中心不转发请求,服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,注册中心,服 务提供者,服务消费者三者之间均为长连接,监控中心除外,注册中心通过长连接感知服务提供者的存在,服务提供 者宕机,注册中心将立即推送事件通知消费者 注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表 注册中心和监控中心都是可选的,服务消费者可以直连服务提供者。

三.题后思考

Dubbo的面试题远远不止上面这些,这些但是我之前在面试中遇到频率较高的,因为面试的公司不同,业务不同,公司的技术侧重点也会不同,所以有时候背'八股文'是没有意义的,要自己多看多思考才行。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值