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