Zookeeper 基础知识
- Zookeeper 基础
- 概念:Zookeeper 是一个分布式的服务协调组件
- 文件系统:Zookeeper 维护一个类似文件系统的数据结构
- 通知机制:客户端可以注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper 会通知客户端。
- Zookeeper 作用
- 数据的发布与订阅
- 发布通知/协调
- 分布式锁
- 集群管理
- 分布式队列
Zookeeper 注册和发现服务
- 场景
- 访问量不低于每分钟十万级别调用
- 对用户永不停机,及时响应
- 服务与服务之间可能有调用
- 对100台服务器提供多个服务,之后可能会有扩容
- 每周最少一次到两次上线
- 需求
- 实时获取指定服务有效的服务器列表
- 服务器列表改变不频繁
- 服务器上下线及时通知
- 负载均衡
- Zookeeper 上的应用
- 使用Zookeeper来存放服务器列表
- 不推荐使用Zookeeper来存放较大的文件
- 使用Zookeeper的watcher来及时更新服务器信息
- Zookeeper 高性能的读,以及稳定的写
Zookeeper 负载均衡策略
- 场景
- 内部应用多使用长连接
- 对用户永不停机,及时响应
- 调用量大,中心节点无法负载
- 应用提供的服务多,Nginx配置很麻烦
- 需求
- 负载均衡
- 无中心
- 简单配置
- 服务任意上下线
- 应用
- Zookeeper 存取服务的多个提供者信息
- Zookeeper 的通知机制+本地缓存
- 应用仅需要一个Zookeeper地址