ray-note/极客时间学习/Java 实战训练营/分布式服务/Zookeeper.md

73 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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