Dubbo面试五分钟精华浓缩版

2 篇文章 0 订阅
1 篇文章 0 订阅
  • 本文围绕几个谈到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协议完成通信即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值