zookeeper使用场景实战

ZK java客户端

zk官方客户端没有和服务端分离,同一个jar文件,我们直接引入zk的maven即可。注意版本匹配兼容

Curator

curator java语言编程的zk客户端框架,curator项目是现在zk客户端中使用最多。
将我们平时使用的zk服务开发进行了封装,例如leader选举, 分布式计数器,分布式锁、减少开发时间。

ZK集群

 leader      处理写请求 和读请求
 follower       处理读请求
 observer       读,不参与选举

zk使用场景

1. 非公平

zookeeper使用场景实战_第1张图片
并发严重情况下,性能下降严重。所有节点对同一节点进行监听,当服务器检测到删除操作,通知所有连接。
再次并发竞争,这就是羊群效应

2. /公平锁
zookeeper使用场景实战_第2张图片
请求进来,默认创建一个临时顺序节点, 判断是不是lock节点下,最小的节点。 yes。获取锁,no,监控等待.
循环操作上述流程

3. 共享锁

zookeeper使用场景实战_第3张图片
并不是所有请求都需要加锁。 读读请求就不需要。 读写需要加读锁,通知其他线程不能进行修改, 直至读完成。写也不允许,加写锁,其他线程不能进行读和写操作。

4. leader在分布式场景中的应用

5 .spring cloud zk 注册中心实战

当服务较少时,可以直接通过点对点进行请求。请求过多扩展服务数量,通过nginx进行转发

如果服务过多
zookeeper使用场景实战_第4张图片
引入zk,监控各个服务的状态

你可能感兴趣的:(分布式框架,java-zookeeper,zookeeper,java)