Dubbo10大常见面试题,月薪10k不是梦

问题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

默认的容错模式是: Failover(失败自动切换)


问题5:Dubbo注册中心有哪些?

Dubbo默认支持五种注册中心:

1.Multicast

2.Zookeeper(推荐)

扫描二维码关注公众号,回复: 17137271 查看本文章

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

默认负载均衡策略是: random 随机


问题11:Dubbo注册中心zookeeper挂掉,负载均衡还有效吗?

有效。因为消费者从zookeeper注册中心获取服务地址后会在做本地缓存。


问题12:Dubbo项目如何对服务升级?

使用服务提供者的版本号进行隔离,对服务进行灰度发布。

猜你喜欢

转载自blog.csdn.net/weixin_43249535/article/details/105926719