第三章:(1)高可用 之 Zookeeper 宕机 与 Dubbo 直连

一、Zookeeper 宕机

  现象:zookeeper注册中心宕机,还可以消费dubbo暴露的服务。

  原因:健壮性

1.监控中心宕掉不影响使用,只是丢失部分采样数据

2.数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务

3.注册中心对等集群,任意一台宕掉后,将自动切换到另一台

4.注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯

5.服务提供者无状态,任意一台宕掉后,不影响使用

6.服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复

  高可用:通过设计,减少系统不能提供服务的时间

二、Dubbo 直连

  注册中心的作用就是向服务消费端告诉服务提供端的 url 地址及端口信息,那么能不能绕过注册中心呢?

  答案是可以的,可以采用 Dubbo 直连的方式。

  示例:

@Service
public class OrderServiceImpl implements OrderService {

    @Reference(url = "127.0.0.1:20882")  //dubbo 直连
    UserService userService;

    @Override
    public List<UserAddress> initOrder(String userId) {
        System.out.println("用户ID:" + userId);
        //1.查询用户的收货地址
        List<UserAddress> userAddressList = userService.getUserAddressList(userId);
        System.out.println("userAddressList = " + userAddressList);

        userAddressList.forEach(t -> System.out.println(t.getUserAddress()));
        System.out.println("调用完成!");
        return userAddressList;
    }
}
原文地址:https://www.cnblogs.com/niujifei/p/15805650.html