java面试—dubbo

1.dubbo的容错机制;
    1)、Failover Cluster:失败自动切换,当出现失败,重试其他服务器
    2)、Failfast Cluster:快速失败,只发起一次调用,失败立即报错,通常用于非幂等性的写操作。
    3)、Failsafe Cluster:失败安全,出现异常时,直接忽略,通常用于写入审计日志等操作。
    4)、Failback Cluster:失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作。
    5)、Forking Cluster:并行调用多个服务器,只要一个成功即返回,通常用于实际性要求比较高的读写操作,但需要浪费更多服务资源,可通过forks="2"来设置最大并行数;
    6)、Broadcast Cluster:广播调用所有提供者,逐个调用,任意一台报错则报错,
    *在实际应用中查询语句容错策略建议使用默认Faillover Cluster,而增删改建议使用Failfast Cluster或者使用Failover Cluster(retries="0")策略,防止出现数据,重复添加等待其他问题
2.dubbo中遇到的问题
    1)、增加提供服务版本号和消费服务版本号
        这个具体来说不算是个问题,而是一种问题的解决方案,在我们的实际工作中面临各种环境资源短缺的问题,刚刚开始提供一个服务进行相关开发和测试,但是当有多个环境多个版本,多个任务的时候,就不满足我们的需求,通过提供方增加版本的方式来区分,


2)、dubbo reference注解
        @Reference只能在springbean实例对应的当前类中使用,暂时无法在父类使用;如果确实要在父类声明一个引用,可通过配置文件配置dubbo:reference,然后在引用的地方跟引用sprinbean一样可以;
    3)、出现RpcException:No provid for remote service异常,表示没有可用的服务提供者
        a.检查链接的注册中心是否真确
        b.到注册中心查看相应的服务提供者是否存在
        c.检查服务提供者是否正常进行
    4)、服务提供者没挂,在注册中心看不到
        确认服务提供者是否链接真确的注册中心,地址网络等链接;看看服务器提供者是否繁忙,阻塞

3.dubbo链接方式
    广播,直连,zookeeper注册中心
    1)、dubbo广播:
    manager服务端配置

        
		
		
		
		
		
		
		

客户端配置manager-web配置

        
		
		
		
		
		

2)、dubbo直连
    服务端配置:取消广播,注册中心地址N/A

		
		
		
		
		
		
		
		

manager-web配置,取消广播,从指定url中获取服务


		
		
		

3)、zookeeper注册中心
        服务交给注册中心管理,

java面试—dubbo_第1张图片

 

 

 

 

 

 

 

 

        a.provider:暴露服务的服务提供方。
        b.consumer:调用远程服务的服务消费方。
        c.registry:服务注册与发现注册中心。
        d.Monitor:统计服务的调用次调和调用时间的监控中心。
        e.container:服务运行容器。
        调用关系:
        a.服务容器负责启动,加载,运行服务提供者。
        b.服务提供者在启动时,向注册中心注册自己提供的服务。
        c.服务消费者在启动时,向注册中心订阅自己所需的服务。
        d.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
        e.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
        f.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

你可能感兴趣的:(面试宝典,java)