2014年6月13日
摘要: zookeeper源码2 阅读全文
posted @ 2014-06-13 18:04 duanxz 阅读(187) 评论(0) 推荐(0)
摘要: zookeeper源码 阅读全文
posted @ 2014-06-13 18:03 duanxz 阅读(213) 评论(0) 推荐(0)
摘要: 在实际应用开发中,当某个ZNode发生变化后我们需要得到通知并做一些后续处理,Curator Recipes提供了Path Cache 来帮助我们轻松实现watch ZNode。 Path Cache Path Cache可以监控ZNode子结点的变化,例如:add,update,delete。 A 阅读全文
posted @ 2014-06-13 18:02 duanxz 阅读(2886) 评论(0) 推荐(0)
摘要: 一、为什么数据会不一致 回顾一下上一篇文章《缓存与数据库一致性之一:缓存更新设计》中对缓存、数据库进行读写操作的流程。 写流程: (1)先淘汰cache (2)再写db 读流程: (1)先读cache,如果数据命中hit则返回 (2)如果数据未命中miss则读db (3)将db中读取出来的数据入缓存 阅读全文
posted @ 2014-06-13 18:01 duanxz 阅读(2504) 评论(0) 推荐(1)
摘要: Paxos算法的难理解与算法的知名度一样令人敬仰,从我个人的经历而言,难理解的原因并不是该算法高深到大家智商不够,而在于Lamport在表达该算法时过于晦涩且缺乏一个完整的应用场景。如果大师能换种思路表达该算法,大家可能会更容易接受: 首先提出算法适用的场景,给出一个多数读者能理解的案例 其次描述P 阅读全文
posted @ 2014-06-13 18:01 duanxz 阅读(646) 评论(0) 推荐(0)
摘要: Zookeeper使用了一种称为Zab(Zookeeper Atomic Broadcast)的协议作为其一致性复制的核心,据其作者说这是一种新发算法,其特点是充分考虑了Yahoo的具体情况:高吞吐量、低延迟、健壮、简单,但不过分要求其扩展性。下面将展示一些该协议的核心内容: 另,本文仅讨论Zook 阅读全文
posted @ 2014-06-13 18:01 duanxz 阅读(1340) 评论(0) 推荐(0)
摘要: 原计划在介绍完ZK Client之后就着手ZK Server的介绍,但是发现ZK Server所包含的内容实在太多,并不是简简单单一篇Blog就能搞定的。于是决定从基础搞起比较好。 那么ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server 阅读全文
posted @ 2014-06-13 18:00 duanxz 阅读(314) 评论(0) 推荐(0)
摘要: 本文的主题就是讲解Zookeeper通信模型,本节将通过一个概要图来说明Zookeeper的通信模型。 Zookeeper的通信架构 在Zookeeper整个系统中,有3中角色的服务,client、Follower、leader。其中client负责发起应用的请求,Follower接受client发 阅读全文
posted @ 2014-06-13 18:00 duanxz 阅读(539) 评论(0) 推荐(0)
摘要: 在开发中,往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一共有如下几点区别 定时任务有明确的触发时间,延时任务没 阅读全文
posted @ 2014-06-13 18:00 duanxz 阅读(1290) 评论(0) 推荐(0)
摘要: ZooKeeper 的功能特性通过 ZooKeeper 配置文件来进行控制管理( zoo.cfg 配置文件)。 ZooKeeper 这样的设计其实是有它自身的原因的。通过前面对 ZooKeeper 的配置可以看出,对 ZooKeeper 集群进行配置的时候,它的配置文档是完全相同的(对于集群伪分布模 阅读全文
posted @ 2014-06-13 17:59 duanxz 阅读(705) 评论(0) 推荐(0)
摘要: ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的 阅读全文
posted @ 2014-06-13 17:59 duanxz 阅读(508) 评论(0) 推荐(0)
摘要: 如何使用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到 阅读全文
posted @ 2014-06-13 17:59 duanxz 阅读(1230) 评论(0) 推荐(0)
摘要: 一、Zookeeper产生的背景 ZooKeeper是–个开放源代码的分布式协调服务,由知名互联网公司雅虎创建,是Google Chubby的源实现。ZooKeeper的设计目标是将那些复杂且容易出错的分布式–致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 ①Z 阅读全文
posted @ 2014-06-13 17:59 duanxz 阅读(985) 评论(0) 推荐(0)
摘要: 1、Zookeeper的角色 » 领导者(leader),负责进行投票的发起和决议,更新系统状态 » 学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票 » Observer可以接受客户端连 阅读全文
posted @ 2014-06-13 17:59 duanxz 阅读(263) 评论(0) 推荐(0)
摘要: 本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的Windows安装和配置. C 阅读全文
posted @ 2014-06-13 17:57 duanxz 阅读(790) 评论(0) 推荐(0)
摘要: 一、缓存更新场景介绍 缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。 例如对于用户的余额信息表account(uid, money),业务上的需求是: (1)查询用户的余额,SELECT money FROM account WHERE uid=XXX,占9 阅读全文
posted @ 2014-06-13 09:49 duanxz 阅读(9815) 评论(0) 推荐(4)