高可用:通过设计减少系统不可用的时间。
对于dubbo来说,注册中心Zookeeper的宕机是不会影响dubbo消费者正常调用服务提供者服务的,原因是dubbo消费者本地会缓存一份服务提供者列表,在zk宕机的情况下,dubbo消费者依然可以在本地缓存中得到服务提供者列表进行通讯。
测试:
一开始zk服务正常提供,我们访问下接口可以发现正常访问:
然后我们关掉zookeeper:
再次调用相同接口发现毫无影响:
其实,我们还可以直接指定直连服务提供者接口的方式,绕过注册中心:
@Reference(url="127.0.0.1:20880")
private UserService<User> userService;
重启消费者,再次访问,依然可以: