dubbo常见面试题总结
- 问题1: Dubbo只能从注册中心获取服务吗?
- 问题2: Dubbo服务提供者一定要需要开启,消费者才可以开启吗?
- 问题3:Dubbo默认调用服务超时的时长是多少?
- 问题4:Dubbo 集群容错模式有哪些?默认容错模式是什么?
- 问题5:Dubbo注册中心有哪些?
- 问题6:Dubbo注册中心zookeeper挂掉了,消费者还能正常调用微服务吗?
- 问题7:Dubbo可以对调用结果进行缓存么?
- 问题8:Dubbo屏蔽与容错是什么?
- 问题9:Dubbo可以整合Hystrix吗?
- 问题10:Dubbo负载均衡策略有哪些,默认负载均衡策略是什么?
- 问题11:Dubbo注册中心zookeeper挂掉,负载均衡还有效吗?
- 问题12:Dubbo项目如何对服务升级?
问题1: dubbo只能从注册中心获取服务吗?
不是,也可以使用直连,直连方式是不需要从注册中心是不需要从注册中心获取服务。在开发环境与测试环境下,经常需要绕过注册中心,只测试指定服务的提供者,这时可能需要点对点直连方式。
注意:直连方式会失去负载均衡的能力,所以不适合生产环境。
问题2: dubbo服务提供者一定要需要开启,消费者才可以开启吗?
服务提供者不一定需要开启,因为dubbo有启动时检查机制,我们可以把check=false,这样子服务提供者就不需要开启也可以启动消费者
@RestController
public class UserController {
// check=false: 消费者在启动时不进行检查。
@Reference(check = false)
private UserService userService;
@GetMapping("/hello")
public String hello(String name){
// 发起远程调用(RPC)
return userService.hello(name);
}
}
问题3:dubbo默认调用服务超时的时长是多少?
服务超时时长为:1000毫秒(1秒)
问题4:dubbo 集群容错模式有哪些?默认容错模式是什么?
dubbo集群容错模式有6种:Failover、Failfast 、Falisafe、Faillback、Forking、broadcast
问题5:dubbo注册中心有哪些?
1.Multicast
2.Zookeeper(推荐)
3.Nacos
4.Redis
5.Simple
问题6:dubbo注册中心zookeeper挂掉了,消费者还能正常调用微服务吗?
可以正常调用,因为消费者从注册中心拉取服务后会在本地进行缓存。
问题7:dubbo可以对调用结果进行缓存么?
可以对调用的结果进行缓存,不过默认是不可以的,需要通过cache属性配置结果缓存(lru, threadlocal, jcache)
配置文件:
<!-- 第一种方式 -->
<dubbo:reference interface="com.foo.BarService" cache="lru" />
<!-- 第二种方式 -->
<dubbo:reference interface="com.foo.BarService">
<dubbo:method name="findBar" cache="lru" />
</dubbo:reference>
注解@Reference:
@RestController
public class UserController {
// check=false: 消费者在启动时不进行检查。
// cache="lru": 配置结果缓存(lru, threadlocal, jcache)
// methods: 指定具体方法加结果缓存
@Reference(check = false, cache = "lru",
methods = {@Method(name = "hello", cache = "lru")})
private UserService userService;
@GetMapping("/hello")
public String hello(String name){
// 发起远程调用(RPC)
return userService.hello(name);
}
}
问题8:dubbo屏蔽与容错是什么?
mock=force:return null
容错:相当于降级,在远程调用失败时,放回null值,不抛出异常,对消费者不产生调用影响。
mock=fail:return null
问题9:dubbo可以整合Hystrix吗?
可以,用Hystrix框架来提供服务降级方法。
问题10:dubbo负载均衡策略有哪些,默认负载均衡策略是什么?
负载均和策略有4种:
1.random 随机
2.roundrobin 轮训
3.leastactive 最少活跃数
4.consistanthash 一致性hash
问题11:dubbo注册中心zookeeper挂掉,负载均衡还有效吗?
有效。因为消费者从zookeeper注册中心获取服务地址后会在做本地缓存。
问题12:dubbo项目如何对服务升级?
使用服务提供者的版本号进行隔离,对服务进行灰度发布。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。