zookeeperDistributedQueue

传统的单进程编程中,使用队列 存储一些数据结构,用来在多线程中共享或传递数据,

在分布式环境下,同样需要类似 单进程编程中的 用来实现跨进程 跨主机 跨网络的数据共享和数据传递 -- 分布式队列‘

zookeeper可以通过顺序节点 实现 分布式队列

分布式队列指的是当多客户端进入队列后 依照排队的顺序(持久化序列化生成节点)进行相应的读取

(读取时依照节点大小排序后读取对应的节点数据即可 然后删除排队节点)

架构图:

zookeeper集群:

/zookeeper

/queue

/element1

/element2

/element3

客户端请求:

生产者:

服务器处理请求:

消费者

生产者算法(入队算法):

创建持久的序列化的顺序节点

消费者算法(出队算法):

1/首先读取queue节点下的所有子节点

2/针对所有子节点 根据序列号进行排序

3/读取第一个子节点的数据并返回

4/删除读取的子节点

阻塞式:

在队列中为空时,服务器一直处于阻塞状态直到读取到队列中最新的数据为止。

测试的时候注意延迟调度执行  入队操作

你可能感兴趣的:(zookeeperDistributedQueue)