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

2019-07-29  本文已影响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;
    }
}
上一篇下一篇

猜你喜欢

热点阅读