## 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作为注册中心的底层实现原理