Zookeeper入门实战(注册中心)

Zookeeper入门实战(注册中心)

Zookeeper是一个高性能的分布式协调服务,根据官方对Zookeeper(以后简称zk)的介绍,zk主要支持以下特性:

  • 管理配置信息,可以作为管理配置信息的中央服务器
  • 命名服务
  • 分布式锁
  • 分组服务,也就是leader选举

在之前Dubbo分布式服务框架入门实战(附源码)这篇文章中,使用了zk作为服务注册中心了,由于zk能够及时将新注册的服务主动推送给消费者,消费者完全不用操心具体服务提供者的具体信息,只需要知道有这个服务就可以了,因为zk会帮你发现新增的服务。同理,当某个服务下线时,zk也能主动通知消费者,这样消费者就不会去调用已下线的服务了。

这篇文章将分享两个方面的内容:

  • Zookeeper的安装与配置
  • Zookeeper作为服务注册与发现中心

Zookeeper的安装与配置

Zookeeper的安装与配置比较简单,首先需要到官网下载zookeeper的安装包,下载后解压到你需要安装的目录,然后修改conf目录下的zoo_sample.cfgzoo.cfg。如果是Windows环境,则切换到bin
目录,并双击执行zkServer.cmd,如果出现以下的结果:

Zookeeper入门实战(注册中心)_第1张图片

则说明zk安装成功。

Zookeeper作为服务注册与发现中心

在之前的文章中有使用到zk作为服务注册与发现中心,那么zk是如何作为服务注册与发现中心的呢?这篇文章将从原理的角度剖析zk是如何作为服务注册与发现中心的。

首先看如下的原理图:

Zookeeper入门实战(注册中心)_第2张图片

首先,涉及到三个角色:服务提供者、服务消费者和服务注册中心(就是zk了)。

服务提供者:服务来源方,一个服务提供者只有注册到服务注册中心才可以被消费者使用。而要注册到注册中心则需要提供如下的信息:

  • 服务提供者的应用名称
  • 服务地址
  • 服务端口
  • 请求URL

服务消费者:服务的消费方,主要职责包括以下几个方面:

  • 服务消费者在启动时从注册中心获取需要的服务注册信息并将注册信息缓存在本地
  • 监听服务注册信息的变更,如果收到zk的变更通知,则修改本地缓存的服务注册信息
  • 根据本地缓存的服务注册信息构建调用请求,并根据负载均衡策略转发请求
  • 对服务提供方的注册信息进行心跳检测,如果某个已缓存的注册信息已经下线,则将该负责注册信息从本地缓存中移除。

服务注册中心:存储服务提供者注册的信息,并将注册信息实时变更主动push给服务消费者。

你可能感兴趣的:(zookeeper)