前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式队列实现思路

分布式队列实现思路

作者头像
dys
发布2018-04-03 16:29:59
7470
发布2018-04-03 16:29:59
举报
文章被收录于专栏:性能与架构性能与架构

分布式队列简单理解就是:

帮助我们实现跨进程、跨主机、跨网络的数据共享和数据传递

(之前文章 "分布式消息队列" 介绍的更详细一点)

zookeeper是一个简单可靠的分布式队列实现方式 Zookeeper可以处理两种类型的队列: (1)同步队列 当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达 例如一个班去旅游,看是否所有人都到齐了,到齐了就发车 例如有个大任务分解为多个子任务,要所有子任务都完成了才能进入到下一流程 (2)先进先出队列 按照FIFO方式进行入队和出队 例如实现生产者和消费者模型

实现思路

01

同步队列

在zookeeper中先创建一个根目录 queue_sync,做为队列 队列的消费者监视/queue_sync/start节点,刚开始还没有这个节点,所以什么都不会做 入队操作就是在queue_sync下创建子节点,然后计算子节点的总数,看是否和队列的目标数量相同 如果相同,创建/queue_sync/start节点,由于/queue_sync/start这个节点有了状态变化,zookeeper就会通知监视者:队员已经到齐了,监视者得到通知后进行自己的后续流程

02

先进先出队列

在zookeeper中先创建一个根目录 queue_fifo,做为队列 入队操作就是在queue_fifo下创建自增序的子节点,并把数据放入节点内 出队操作就是先找到queue_fifo下序号最下的那个节点,取出数据,然后删除此节点

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档