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

Dubbo面试五分钟精华浓缩版

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

Dubbo面试五分钟精华浓缩版

  • 本文围绕几个谈到dubbo 95概率会问起的问题展开。
  • 什么是dubbo以及dubbo的十层(三层)模型
  • dubbo核心功能
  • 负载均衡策略
  • dubbo工作原理
  • dubbo与springcloud的区别(第一次看到这个问题挺懵***的,这两个好像不是一个层面的东西吧???实际上对比的还是springcloud的feign和dubbo底层)
  • 欢迎留言指正,好友交流

什么是dubbo?

Dubbo是一个高性能轻量级的开源RPC框架,它有十层模型构成,从上往下

Business:

  • service业务逻辑层

RPC:

  • config配置层
  • proxy代理层,提供consumer和provider的代理
  • register服务注册层,封装服务地址的注册和发现
  • cluster路由层,封装provider路由和负载均衡
  • monitor监控层,提供RPC调用时间和次数监控
  • protocl远程调用层,封装RPC调用

remoting:

  • exchange信息交换层,用于封装请求响应模式,同步转异步
  • transport网络传输层,对netty和mina的封装
  • serialize序列化层,提供数据的序列化和反序列化
Dubbo官网六大核心功能
  • 面向接口代理的高性能RPC调用
  • 容错与负载均衡
  • 服务自动发现与注册
  • 高度可扩展能力
  • 运行期流量调度
  • 可视化的服务治理和运维
Dubbo五种负载均衡策略
  • 加权随机:通过区间的随机算法,获取服务器,可以通过增加某个服务器的权重获得更大的调用可能性
  • 最小活跃数:每个服务提供者对应一个活跃数active,初始状态下都为0,每次收到请求活跃数+1,完成请求后-1,运行一段时间后,性能好的服务提供者处理请求速度更快,活跃数下降越快,服务提供者就能优先获得请求
  • 一致性hash:根据来自同一个客户端的请求,通过一致性hash算法,落到一个服务器上,请求信息不变,会请求同一台服务器。
  • 加权轮询:目标服务器按照123123轮询,加权指对服务器性能好的节点增加权重。
  • 最短响应时间的权重随机:计算目标服务的请求的响应时间,响应时间最短的服务配置更高的权重
Dubbo原理(Simple版)

1.服务启动时,服务提供者和消费者根据配置信息连接注册中心,分别向注册中心去订阅和注册服务

2.注册中心根据订阅关系,返回服务提供者的信息给消费者,消费者把这些信息缓存到本地,如果信息发生变更,消费者收到注册中心的推送,更新本地的缓存

3.服务消费者生成代理对象,根据负载均衡策略,选择一台服务提供者,并且定时向monitor记录接口的调用次数和时间信息

4.拿到代理对象后,服务消费者通过代理对象发起接口的调用(3,4的代理对象实际上是服务提供者接口的封装)

5.服务提供者收到请求后,根据数据进行反序列化,通过代理,调用接口具体的实现

Dubbo和SpringCloud的区别

关注点:Dubbo是SOA时代产物,关注点在于服务的远程调用,流量分发,服务治理,流量控制等;Springcloud是微服务架构时代,关注微服务整个生态的解决方案,依托于Spring和Springboot生态

底层:(与其说在和SpringCloud对比,实际不如说和Feign在对比)dubbo底层使用netty NIO框架,基于TCP协议(默认dubbo协议)进行传输,通过Hession等序列化方式完成RPC通信;Springcloud基于Http协议+Rest风格的借口实现远程通信,http协议报文更大,占用带宽更大,效率比dubbo差一些(回忆一下网络模型,http协议工作在哪层?http协议工作在哪层?我想这个问题就很好理解了。),Rest相比RPC更加灵活,服务提供方和调用方根据http协议完成通信即可。

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

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

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