一、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;
}
}