ray-note/后端/极客时间Java实战/Zookeeper.md

2.3 KiB
Raw Blame History

Dubbo 服务注册中心

注册中心基本模型

  • 注册中心
  • 服务提供者
    • 通过注册中心客户端,向注册中心注册服务
  • 服务消费者
    • 通过注册中心客户端,从注册中心订阅服务
    • 接收来自注册中心的变更通知
    • 调用订阅的服务
    • 本地保留订阅服务缓存,缓存需要和注册中心中的保持一致

注册中心核心功能:

  • 支持对等集群:本身支持无状态的高可用
  • 提供CURD接口 不能理解这个点的curd访问的是什么内容
  • 订阅发布机制
  • 变更通知机制

dubbo注册中心功能

  • 直连: 不使用注册中心
  • 只发布(注册)
  • 只订阅
  • 支持不同的注册中心,(用得少)

Dubbo支持的注册中心

  • Nacos
  • Zookeeper
  • Multicast
  • Redis
  • Consul
  • Etcd3

Dubbo 中的注册中心的定义

通过回调函数实现异步通知

注册中心构造类

  • RegistryService
    • AbstractRegistryFactory
      • MulticastRegistryFactory
      • NacosRegistryFactory
      • ZookeeperRegistryFactory

Zookeeper注册中心结构

  • Zookeeper
    • Root -- dubbo
    • Service -- 具体的服务定义
    • Type -- 服务的类型 (消费者/提供者)
    • URL -- 提供者(或消费者)的地址
  • Provider -- 监听提供者的URL 层次
  • Consumer -- 监听提供者的type层和消费者的URL层
  • Monitor -- 监听Service层

Zookeeper 功能特性

核心是一个精简的文件系统,提供基于目录节点(ZNode)树方式的数据存储,以及一些额外的抽象操作,如排序、通知和监控。本质上是一种分布式协调工具

Zookeeper 访问特性

  • 原子性访问 所有请求的处理结果在整个Zookeeper集群中所有机器是一致的
  • 顺序访问 从同一个客户端发起的事务请求会按照其发起顺序严格应用到Zookeeper

Zookeeper操作模型

  • Zookeeper 会话
    • 操作
      • TCP连接
      • 发送请求
      • 接受Watch事件
    • 节点类型
      • 临时 -- 建立连接创建,连接断开之后自动消失(会话结束自动删除)
      • 持久
  • Watch (基于会话,分布式环境下的回调函数)
    • ZNode一旦变化变更消息通过会话传回到客户端
    • 客户端关注ZNode发生变化当ZNode 的变化发生的时候,回调函数被调用

Zookeeper 核心API

掌握Zookeeper作为注册中心的底层实现原理