ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Kafka-分区分配规则

2020-06-23 22:52:04  阅读:273  来源: 互联网

标签:副本 分区 broker Kafka 跟随者 broker4 规则 机架


Kafka-分区分配规则

kafka的基本存储单元是分区。分区无法在多个broker间进行再细分,也无法在同一个broker的多个磁盘上进行再细分。所以,分区的大小受到单个挂载点可用空间的限制。

在配置kafka的时候,使用log.dirs参数来配置用于存储分区的目录清单。

分区分配

在创建主题时,kafka首先会决定如何在broker间分配分区。假设我们有6个broker,打算创建一个包含10个分区的主题,并且复制系数为3.那么kafka就会有30个分区副本,他们可以被分配给6个broker。

在进行分区分配时,要达到如下的目标:

1.在broker间平均地分布分区副本。上述例子中,也就是要保证每个broker可以分到5个副本。

2.确保每个分区的每个副本分布在不同的broker上。假设分区0的首领副本在broker2上,那么可以把跟随者副本放在broker3和broker4上,但不能放在broker2上,也不能两个都放在broker3上。

3.如果为broker指定了机架信息,那么尽可能把每个分区的副本分配到不同机架的broker上。这样做是为了保证一个机架的不可用不会导致整体的分区不可用。

为了实现这一目标,我们先随机选择一个broker(假设是broker4),然后使用轮训的方式给每个broker分配分区来确定首领分区的位置。于是,首领分区0会在broker4上,首领分区1会在broker5上,首领分区2会在broker0上,并以此类推。接下来是分配跟随者副本。如果分区0的首领在broker4上,那么它的第一个跟随者副本会在broker5上,第二个跟随者副本会在broker0上。分区1的首领在broker5上,那么它的第一个跟随者副本在broker0上,第二个跟随者副本在broker1上。

如果配置了机架信息,那么就不是按照数字顺序来选择broker了,而是按照交替机架的方式来选择broker。假设broker0、broker1和broker2放置在同一个机架上,broker3、broker4、broker5分别放置在其它不同的机架上。我们不是按照0-5的顺序来选择broker,而是按照0,3,1,4,2,5的顺序来选择,这样每个相邻的broker都在不同的机架上。于是,如果分区0的首领在broker4上,那么第一个跟随者副本会在broker2上,这两个broker在不同的机架上。如果第一个机架下线,还有其他副本仍然活跃着,所以分区仍然可用。

为分区和副本选好合适的broker之后,接下来要决定这些分区应该使用哪个目录。我们单独为每个分区分配目录,规则很简单:计算每个目录里的分区数量,新的分区总是被添加到数量最小的那个目录里。

标签:副本,分区,broker,Kafka,跟随者,broker4,规则,机架
来源: https://www.cnblogs.com/EnzoDin/p/13185010.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有