Dubbo面试题十八问十八答

1. Dubbo的服务请求失败怎么处理

容错机制:
Failover Cluster(默认)
失败自动切换,当出现失败,重试其它服务器。
通常用于读操作,但重试会带来更长延迟。

Failfast Cluster
快速失败,只发起一次调用,失败立即报错。
通常用于非幂等性的写操作,比如新增记录。

Failsafe Cluster
失败安全,出现异常时,直接忽略。
通常用于写入审计日志等操作。

Failback Cluster
失败自动恢复,后台记录失败请求,定时重发。
通常用于消息通知操作。

Forking Cluster
并行调用多个服务器,只要一个成功即返回。
通常用于实时性要求较高的读操作,但需要浪费更多服务资源。

dubbo启动时默认有重试机制和超时机制。

超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败,

重试机制在出现调用失败时,会再次调用。如果在配置的调用次数内都失败,则认为此次请求异常,抛出异常。

2. dubbo的负载均衡有几种算法?

随机
轮询
最少活跃请求数
一致性hash

3. Dubbo 和 Spring Cloud 有什么区别?

dubbo有服务注册 服务调用 监控中心

springcloud的组件比较完善
注册中心 监控 熔断器 网关 分布式配置

4. dubbo都支持什么协议,推荐用哪种?

九种协议
默认是dubbo
rmi
hessian
http
webservice
thrift
memcached
redis
rest

5. Dubbo默认使用什么注册中心,还有别的选择吗?

zookeeper
redis
nacos

6. 在 Provider 上可以配置的 Consumer 端的属性有哪些?

timeout
重试次数
loadbalance 负载均衡算法
actives 最大并发限制

7. Dubbo启动时如果依赖的服务不可用会怎样?

check 默认是true 不可用会启动失败
可以配置为check为false

8. Dubbo推荐使用什么序列化框架,你知道的还有哪些?

默认使用hessian2
dubbo序列化
json序列化
java序列化

性能比较高的两种方式
kryo FST

9. Dubbo默认使用的是什么通信框架,还有别的选择吗?

netty

10. 服务上线怎么兼容旧版本?

通过版本号来区分
old为1.0 new为1.1

11. Dubbo服务之间的调用是阻塞的吗?

同步非阻塞
底层用的是netty

12. Dubbo telnet 命令能做什么?

查看服务列表
invoke手动调用指定的方法

13. Dubbo 核心组件有哪些?

provider
consumer
registry
monitor
container

14. Dubbo 服务器注册与发现的流程?

provider绑定指定端口并启动服务,发送服务相关信息 本机ip到注册中心

消费者发送自己要调用的服务信息给注册中心,注册中心返回提供者地址列表,消费者选择提供者进行调用

provider状态变更会实时发送到注册中心,注册中心将变更推送到消费者

15. Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?

可以通信 消费者会将提供者服务信息缓存到本地,注册中心挂掉会影响提供者的服务信息变更推送

16. Dubbo源码使用了哪些设计模式

工厂模式
装饰器模式
责任链模式
观察者模式
动态代理

17. Dubbo集群提供了哪些负载均衡策略?

随机
轮询
最少活跃数调用
一致性hash

18、一次RPC的流程是什么样的?

序列化/反序列化
协议编码/协议解码
网络数据传输/socket

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值