`
邢邢色色
  • 浏览: 230087 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
原文链接:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools#Replicationtools-3.ListTopicTool 此工具能干啥? 此工具列出了一个指定的topic的列表的信息。如果在命令行中没有提供topic,则会向ZK查询,获得所有的topic并展示它们的信息,其中有topic的名字,partition,leader,replicas,isr。有2个可选的参数。如果设置了under-replicated-partitions参数,则只会展示正在replicate中的topic/partit ...
原文链接:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools#Replicationtools-2.PreferredReplicaLeaderElectionTool 这工具做了啥? 为了支持replication功能,每一个partition可以有多个replica。一个partition的replica列表称为"assigned replicas"。在这个列表中的第一个replica称为"preferred replica"。当创建topic/partitio ...
原文地址:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools#Replicationtools-1.ControlledShutdown controlled shutdown是啥意思? 在0.8版本中,每一个partition可以有多个replica。这些replica分布在多个broker上,提供了高可用。在任意的时间点上,只有一个replica可以提供读和写服务。换句话说,只有一个replica可以充当leader的角色。当一个broker需要关闭时(如果需要升级版本,改变配置参数时需要关闭),那么需 ...
group.id 默认值:无 唯一的指明了consumer的group的名字,group名一样的进程属于同一个consumer group。   zookeeper.connect 默认值:无 指定了ZooKeeper的connect string,以hostname:port的形式,hostname和port就是ZooKeeper集群各个节点的hostname和por ...
metadata.broker.list 默认值:无,必填 格式为host1:port1,host2:port2,这是一个broker列表,用于获得元数据(topics,partitions和replicas),建立起来的socket连接用于发送实际数据,这个列表可以是broker的一个子集,或者一个VIP,指向broker的一个子集。   request.required.acks 默认值:0 用来控制一个produce请求怎样才能算完成,准确的说,是有多少broker必须已经提交数据到log文件,并向leader发送ack,可以设置如下的值: 0,意味着producer永远不 ...
broker.id  默认值:无 每一个broker都有一个唯一的id,这是一个非负整数,这个id就是broker的"名字",这样就允许broker迁移到别的机器而不会影响消费者。你可以选择任意一个数字,只要它是唯一的。   log.dirs 默认值:/tmp/kafka-logs 一个用逗号分隔的目录列表,可以有多个,用来为Kafka存储数据。每当需要为一个新的partition分配一个目录时,会选择当前的存储partition最少的目录来存储。   port 默认值:6667 server用来接受client请求的端口。   zookeeper.co ...
如果我们要写一个ZooKeeper的client程序,那么有一个相关的配置:connect string,它通常以用逗号分隔的host:port对来表示。host可以用一个IP地址或hostname来表示。使用一个hostname提供了一个中间层将服务器标识与实际的IP隔离开来,这样即使管理员变动了ZooKeeper某个server的部署,client端也不会改动。   然而,这种灵活性是有限制的。管理员可以更改集群中的某台机器,但不能是client正在连接的那台。例如,如下图,集群本来有3台机器,后来扩展到了5台,但是client仍然在使用原来那3台机器,而不是所有的机器。 还有 ...
quorum这个概念深深嵌入了ZooKeeper的设计中,尤其是当处理请求和在replicate模式中进行选举leader时尤为相关。如果ZooKeeper的各个server的quorum起来(up)时,ensemble才能继续(make progress)。 Majority Rules 当一个ensemble有足够的Zookeeper server时,便能够开始处理请求,可以把这些server集合称为一个quorum。当然,永远不会想要两个不相交(disjoint)的server集合来处理请求,否则会发生脑裂(split brain)的情况。可通过要求所有的quorum至少拥有一个m ...
除了leader和follow模式之外,还有第三种模式:observer模式。observer和follower在一些方面是一样的。详细点来讲,他们都向leader提交proposal。但与follower不同,observer不参与投票的过程。它简单的通过接收leader发过来的INFORM消息来learn ...
ZooKeeper使用SLF4J(the Simple Logging Facade for Java)作为日志的抽象层,默认使用Log4J来做实际的日志工作。使用2层日志抽象看起来真是够呛,这里简要的说明如何来配置Log4J。尽管Log4J非常灵活且强大,但它也有一些复杂,可以用一整本书来描述它,这里只是简要的介绍一下基本的用法。   Log4J的配置文件名为log4j.properties,从classpath中查找。如果没有找到log4j.properties文件,会输出如下警告信息:   log4j:WARN No appenders could be found for l ...
下面这些选项也许会有用,但使用的时候一定要小心,他们只适用于一些特殊的场景,其中的大多数选项一般是不需要进行配置的。    forceSync 决定了写进去的数据是否应该sync到磁盘(zookeeper.forceSync),yes或者no。 默认值为ye ...
当配置一个集群时,我们需要为每一个server配置好时间相关的参数,并指定一个server列表,这样server之间就能彼此连接并检测失败。这些配置必须在所有server中保持一致。   initLimit 此值的作用是一个follower初始化连接到leader的超时时间,单位是tickTime。 当一个follower对leader发起一个初始化连接时,可能会有很多数据要传输,特别是如果follower的数据很陈旧时,可以根据网络延迟和数据量的大小来决定这个配置。如果数据量很大的话(例如znode的数量很多或者数据很大)或者网络特别慢的话,需要增大这个值。因为这个值跟你的环境相关 ...
下面这些配置对client与server之间的连接和超时时间进行了限制。   globalOutstandingLimit 这个配置指定了等待处理的最大请求数量的限制(zookeeper.globalOutstandingLimit)。 client发送请求的速度可能会比server端处理的速度快,会导致请求在server端排队,最终(在若干秒内)会使server的内存耗尽。为了避免这一点,如果等待的请求数量达到了globalOutstandingLimit,server端会拒绝client的请求。但是这个限制不是hard限制。每一个client至少能有一个outstanding请求 ...
本文涵盖了更多的高级配置,包括了standalone模式和ensemble模式。不设置它们也能让ZooKeeper工作得很好,但是其中的一些应该需要好好配置一些(比如dataLogDir)。   preAllocSize 为每个事务日志文件预分配(preallocate)的大小,单位为ki ...
ZooKeeper的设计对开发人员来说很友好,但同时也对运维人员友好。当集群越来越大时,管理操作也便得复杂起来,稳妥的管理也变得重要起来。ZooKeeper应该是一个标准的分布式系统组件,一个运维团队可以轻松的学习并管理它。虽说ZooKeeper很容易跑起来,但对于一些配置选项必须牢记在心。你应该很熟悉你的ZooKeeper服务,并使用一些管理工具方便的管理它。   为了让一个ZooKeeper服务正确工作,必须正确的配置好它,只有这样,基于ZooKeeper工作的其他分布式产品才能正常工作。例如,所有的ZooKeeper投票服务器必须拥有一致的配置。这是很多人的经验之谈,不 ...
Global site tag (gtag.js) - Google Analytics