kafka不同分区怎么保证顺序,kafka指定分区
00-1010序言前期准备操作步骤添加副本
00-1010在生产环境中,akfka集群下各服务器的配置和性能可能有所不同,但Kafka集群只会根据配置规则创建相应的分区副本,这可能会造成个别服务器的存储压力较大。
在这种情况下,有必要手动调整分区副本的存储。我们来看看下图。
上图的传达的意思是:
Bror0和broker1所在的服务器配置高,存储容量大,而broker2和broker3所在的机器配置略差,存储容量小。一开始创建主题后,集群只会按照默认的配置规则将领导者和追随者平均分配到不同的节点,并不知道是哪台机器的配置;
但实际上我们希望一个服务器承担更多的读写压力,所以需要事后手动调整分区副本。
看看我们的需求。
创建一个包含四个分区和两个副本的新主题,名为three,并将该主题的所有副本存储在代理1和代理2服务器上。
00-1010 CentOS 7服务器、虚拟机或云服务器提前安装kafka集群,启动集群。集群构建请参考kafka集群服务新节点。
目录
1、创建一个主题,4个分区,2个副本
./Kafka-topics . sh-zookeeper IP :2181-create-topic三-partitions 4-replication-factor 2
2、检查下当前创建的topic情况
./kafka-topics.sh -动物园管理员IP:2181 -描述-话题三
从副本的分布来说,副本尽可能分布在不同的机器上,我们的要求是所有数据尽可能存储在broker1和broker2上。
3、创建副本存储计划
这有点类似于我们在前一章中谈到的为新节点提供服务的操作。在bin目录下创建一个json文件,手动指定分区副本的存储位置。
创建一个名为increase-replication-factor . JSON的文件,并将以下内容复制到其中。关于下面这段话,相信大家都能理解。在实际操作过程中,需要根据其kafka集群中机器的配置进行合理的调整。按照原来的要求,我假设broker3和broker4的配置稍微差一点,所以我尽量把副本配置到broker1和broker2。
{ 版本 :1,分区 :[{ 主题 : 三,分区 :0,副本 :[1,2]},{ 主题 : 三,分区 :1,副本 :[1,2]},{ 主题 : 三,分区 :2,副本 :[2,1]},{
./Kafka-assignment-partitions . sh-zookeeperip 33602181-assignment-JSON-file increase-Replication-Factor。JSON-EXECUTE看到以下内容,表示计划完成,
4、执行存储计划
./Kafka-assignment-partitions . sh-zookeeperip 33602181-assignment-JSON-file increase-Replication-factor . JSON-Verify看到以下内容,表示副本执行计划完成。
5、验证第四步中的执行计划
./kafka-topics.sh - zookeepe
r IP:2181 --describe --topic three与第一次的对比,重新分配之后,副本都转移到了broker1和broker2上面了
通过上面的操作步骤,我们就完成了手动调整分区副本的需求
增加副本
在生产环境中,假如某个主题重要等级需提升,则可以考虑在现有的基础上增加副本。副本数的增加需要先制定计划,然后根据计划执行,这个和之前的kafka集群服役新节点以及上文调整分区副本类似
下面来看看具体的操作步骤
1、创建一个新的主题,3个分区,1个副本
./kafka-topics.sh --zookeeper IP:2181 --create --topic zcy333 --partitions 3 --replication-factor 1
2、查看当前主题的分区副本存储情况
./kafka-topics.sh --zookeeper IP:2181 --describe --topic zcy333
从展示情况来看,目前副本只有一个,因此我们的需求是增加副本数量
3、创建副本存储计划
所有副本都指定存储在 broker1、broker2、broker3 中
增加一个increase-replication-factor.json的文件,将下面的内容拷贝进去
{"version":1,"partitions":[ {"topic":"zcy333","partition":0,"replicas":[1,2,3]}, {"topic":"zcy333","partition":1,"replicas":[1,2,3]}, {"topic":"zcy333","partition":2,"replicas":[1,2,3]} ]}
4、执行副本存储计划
./kafka-reassign-partitions.sh --zookeeper IP:2181 --reassignment-json-file increase-replication-factor.json --execute
看到下面的内容,说明执行成功
可以使用下面的命令,验证执行计划
./kafka-reassign-partitions.sh --zookeeper IP:2181 --reassignment-json-file increase-replication-factor.json --verify
5、再次查看执行后的主题分区副本情况
./kafka-topics.sh --zookeeper IP:2181 --describe --topic zcy333
可以对比执行后的情况与执行之前的情况,明显发现通过上面的操作,针对zcy333这个topic,副本增加了
通过上面的操作,我们成功对现有的topic的副本数进行了增加
到此这篇关于kafka手动调整分区副本数的文章就介绍到这了,更多相关kafka调整分区副本数内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。