`
lc_koven
  • 浏览: 353655 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于zookeeper的讨论

 
阅读更多
    zookeeper作为分布式集群广泛使用的应用程序协调服务集群。它的特点就不说了,很多人分析过。前段时间微博上说到zk有一些问题,其实只是某些场合下zk使用需要小心,这里列举一下:
  1. zk不适合做大数据量的存储,简单来说就是不适合做公用存储。原因很简单,每个数据要同步到所有server才返回,既慢,而且消耗带宽,client还容易阻塞。所以这种应用对zk来说太“重”了。
  2. watch机制是paxos所没有的,是zk为了应用而自己加上的。这个功能有许多陷阱,最根本的原因就是zk的watch事件是单向传递的,并不保证通知一定能到达客户端,因此网络不稳定或者client挂掉都会导致丢失watch事件。举个例子,hbase使用zk来获知rs是否挂掉。如果某台rs挂掉,master也跟着挂掉的话,是没有办法知道这个事件的。必须在代码层做处理。
  3. 另一种陷阱是client对于watch是一次性接收的,所以一次watch通知后,下一次watch接收必须等到client发出下一次watch请求。所以在处理期间如果有新的watch事件发生,会丢失这些事件。
  4. client提交请求时,有可能收到connection_loss的异常,很不幸收到这种异常的时候,client无从得知请求是否成功。因为这个异常的引起是因为连接断开,而连接是在提交请求时断开还是请求正在处理时断开,无从获知。所以应用层如果特别care一致性问题,就必须带上sessionId重连或者重试。

    以后想到再继续写吧,因为最近越来越多的项目开始依赖zookeeper了,所以逐渐开始研究zk。不过进度还是远远赶不上前辈,大家可以在http://rdc.taobao.com/team/jm/archives/category/rpc-soa 看到更有质量的文章。
分享到:
评论
3 楼 alexanderdai 2012-04-03  
嗯 zk watch不可靠,本身就不能强依赖zookeeper,hbase中的强依赖zk的用法是结构上的问题。必须具备定期向zk fetch最新新数据merge到hbase使用zk的 mem中才能保证数据与持久化的一致性。
例如一个很典型的用例场景就是hmaster分配region multi assgin多次都是因为这个引起的。理应当获取不到watch事件的时候达到标准去zk中主动fetch一下最新数据并与内存中cache的数据做比较然后当做本地event处理。
2 楼 lc_koven 2011-12-19  
x-rip 写道
我们搭了一个zookeeper集群,运行3天后,存放dataLogDir的目录将硬盘撑爆了,查看全是乱码,请教一下这个目录下存放的是什么?是不是应用的输出Log也会存放在这个里面?

是的。数据和log都在里面。所以要用zk自带的工具定期删。也可以参见我之前的blog
1 楼 x-rip 2011-12-19  
我们搭了一个zookeeper集群,运行3天后,存放dataLogDir的目录将硬盘撑爆了,查看全是乱码,请教一下这个目录下存放的是什么?是不是应用的输出Log也会存放在这个里面?

相关推荐

    zookeeper-3.4.6_zookeeper_

    在标题“zookeeper-3.4.6_zookeeper_”中,我们可以看到这是关于Zookeeper的一个特定版本——3.4.6的讨论。这个版本的发布对于理解和使用Zookeeper至关重要,因为它包含了该框架的稳定性和功能增强。 在描述“注册...

    zookeeper linux版本

    不过,本讨论主要聚焦于Linux环境的安装与运行。 解压文件"zookeeper-3.4.13"后,您会发现一个包含多个目录和文件的结构。其中,“bin”目录包含了可执行脚本,如`zkServer.sh`,这是启动ZooKeeper服务器的命令。在...

    zookeeper-3.4.11安装包

    在本场景中,我们讨论的是ZooKeeper的3.4.11稳定版本的安装包,它既支持Windows操作系统,也适用于Linux环境中的CentOS发行版。 **ZooKeeper的主要功能和应用:** 1. **命名服务**:为分布式应用提供全局唯一的名字...

    zookeeper3.6.0-linux版本

    在本场景中,我们讨论的是ZooKeeper的3.6.0版本针对Linux系统的实现。 一、ZooKeeper的基本概念 1. ZooKeeper节点:每个存储的数据单元被称为ZNode,类似于文件系统中的文件或目录,有自己的路径和数据。 2. 原子...

    zookeeper查看工具12

    标题"zookeeper查看工具12"可能指的是一个关于ZooKeeper的可视化监控工具的第12个版本或者更新。这样的工具通常能够帮助管理员更直观地查看和管理ZooKeeper集群的状态,包括节点信息、会话、数据树以及各种配置。 ...

    尚硅谷大数据之Zookeeper视频

    根据提供的文件信息,这里主要涉及的是关于Zookeeper的相关知识点。然而,由于描述中提到的链接及提取码无法在此环境中验证其真实性与有效性,因此我们主要依据“尚硅谷大数据之Zookeeper视频”这一标题来展开讨论。...

    zookeeper-3.6.3.zip

    标签"Zookeeper"明确了讨论的主题,Zookeeper是一个由Apache基金会维护的开源项目,它为分布式环境提供了可靠的分布式一致性服务。 压缩包子文件的文件名称列表中,我们看到两个文件: 1. "apache-zookeeper-3.6.3-...

    zookeeper-3.4.10 linux版本

    在本场景中,我们讨论的是ZooKeeper的3.4.10 Linux版本。 ZooKeeper的设计目标是为了解决分布式环境中的命名服务、配置管理、分布式同步以及组服务等核心问题。它通过提供一种统一的服务发现机制,使得分布式系统中...

    从Paxos到Zookeeper分布式一致性原理与实践 + ZooKeeper-分布式过程协同技术详解 pdf

    这里,我们将围绕这两个主题展开讨论。 首先,一致性是分布式系统设计中的核心问题,尤其是在大规模、高可用性的网络环境中。Paxos算法是解决一致性问题的里程碑式工作,由Leslie Lamport提出。Paxos的核心思想是...

    zookeeper系列1:入门

    对于想要深入了解Zookeeper的读者,可以通过阅读官方文档、在线博客(如给出的博客链接:[iteye博客](https://425826501.iteye.com/blog/2424450))和开源社区的讨论来扩展知识。同时,深入研究源码有助于理解其内部...

    eclipse安装ZooKeeper插件

    接下来,我们讨论如何在Eclipse中集成ZooKeeper插件。这个过程相对简单,主要有以下几步: 1. 打开Eclipse,进入“Help”菜单,然后选择“Eclipse Marketplace”选项。这是Eclipse内置的插件市场,我们可以在这里...

    Zookeeper 分布式过程.pdf

    这部分内容为读者提供了一个关于ZooKeeper将要解决的问题的鸟瞰图。 在“第2章了解ZooKeeper”中,作者介绍了ZooKeeper的基础知识和架构。ZooKeeper的架构主要包括集群节点和客户端的交互机制,以及ZooKeeper是如何...

    zookeeper安装包及安装步骤

    接下来,我们将详细讨论Zookeeper的安装包以及在Linux系统上的安装步骤。 ## 一、Zookeeper的功能与特性 1. **配置管理**:集中式存储和分发应用配置,使得配置更改可以在整个集群中快速同步。 2. **命名服务**:...

    ZooKeeper_程指南中文.rar

    此外,可能会讨论一些最佳实践和常见问题的解决方案。 学习并掌握ZooKeeper的知识点,对于理解分布式系统的工作原理,以及开发和维护高可用性的分布式应用至关重要。这份中文指南无疑是为那些没有相关书籍作为参考...

    zookeeper-3.5.2-alpha windows免安装版

    在本场景中,我们讨论的是ZooKeeper的3.5.2-alpha版本,特别适用于Windows系统的免安装版。 标题中的“zookeeper-3.5.2-alpha windows免安装版”指的是ZooKeeper的3.5.2预发布版本,专为Windows操作系统设计,无需...

    zookeeper-3.4.11.tar.gz

    在本场景中,我们讨论的是ZooKeeper的3.4.11版本的Linux安装文件——"zookeeper-3.4.11.tar.gz"。 ZooKeeper的主要功能包括命名服务、配置管理、集群同步、分布式锁和组服务等。这些功能使得它成为分布式系统中的...

    基于Zookeeper和guava动态限流 源码

    我们将首先理解Zookeeper和Guava的基本概念,然后介绍它们如何协同工作以实现动态限流,最后会简要讨论如何安装和使用Zookeeper及ZKUI。 Zookeeper是Apache的一个开源项目,它是一个分布式的、开放源码的分布式应用...

    zookeeper做分布式锁

    本文将深入探讨如何利用ZooKeeper来构建分布式锁,并讨论其背后的关键概念和技术细节。 **1. ZooKeeper概述** ZooKeeper是一个高可用、高性能的分布式协调服务,它提供了诸如命名服务、配置管理、分布式同步、组...

Global site tag (gtag.js) - Google Analytics