美文网首页
zookeeper注册中心宕机,消费者能否调用提供者(三)

zookeeper注册中心宕机,消费者能否调用提供者(三)

作者: 小怪兽打葫芦娃 | 来源:发表于2019-07-29 15:10 被阅读0次

    Dubbo入门案例(一)
    Dubbo入门案例(二)
    Dubbo入门案例(三)
    Dubbo入门案例(四)
    Dubbo入门案例(五)
    Dubbo入门案例(六)
    Dubbo入门案例(七)
    Dubbo入门案例(八)
    现象:zookeeper注册中心宕机,还可以消费dubbo暴露的服务,直接与dubbo直连

    原因:

    健壮性
        监控中心宕掉不影响使用,只是丢失部分采样数据
        数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务
        注册中心对等集群,任意一台宕掉后,将自动切换到另一台
        注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯
        服务提供者无状态,任意一台宕掉后,不影响使用
        服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复
    

    代码演示:

    关闭zookeeper注册中心服务器,直接运行代码,发现还是可以链接,因为本地有缓存可以通讯,如果不使用缓存代码如下:

    修改 工程 dubbodemo_consumer,给注解@Reference 添加url地址,把之前在工程dubbodemo_provider配置文件里面配置的端口号放到url地址后面,直接运行,与dubbo直连

    package com.maweiqi.controller;
    
    import com.alibaba.dubbo.config.annotation.Reference;
    import com.maweiqi.service.HelloService;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    /**
     * HelloController
     *
     * @Author: 马伟奇
     * @CreateTime: 2019-07-19
     * @Description:
     */
    @Controller
    @RequestMapping("/demo")
    public class HelloController {
        @Reference(url = "127.0.0.1:20882")
        private HelloService helloService;
    
        @RequestMapping("/hello")
        @ResponseBody
        public String getName(String name){
            //远程调用
            String result = helloService.sayHello(name);
            System.out.println(result);
            return result;
        }
    }
    

    相关文章

      网友评论

          本文标题:zookeeper注册中心宕机,消费者能否调用提供者(三)

          本文链接:https://www.haomeiwen.com/subject/vfpbrctx.html