kafka集群管理内部.docx

上传人:b****3 文档编号:2890756 上传时间:2022-11-16 格式:DOCX 页数:7 大小:34.54KB
下载 相关 举报
kafka集群管理内部.docx_第1页
第1页 / 共7页
kafka集群管理内部.docx_第2页
第2页 / 共7页
kafka集群管理内部.docx_第3页
第3页 / 共7页
kafka集群管理内部.docx_第4页
第4页 / 共7页
kafka集群管理内部.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

kafka集群管理内部.docx

《kafka集群管理内部.docx》由会员分享,可在线阅读,更多相关《kafka集群管理内部.docx(7页珍藏版)》请在冰豆网上搜索。

kafka集群管理内部.docx

kafka集群管理内部

 

翼支付

Kafka集群管理(内部)

需求规格说明书

 

编写:

xxx

评审:

XXX

批准:

XXX

日期:

2015-03-13

 

文档信息及修改历史

项目名称

Kafka集群管理(内部)设计文档

文档编号

文档密级

机密/秘密/内部/公开

版本号

修改日期

编写

评审

批准

修改内容

填写说明:

1、文档密级是该文档允许扩散的范围。

2、版本号是指该文档的版本次序号,该文档首次发布时可确定为1.0,如果在上一版的基础上有细微的调整和修改,则可在小数点后次版本号加1;如果该文档内容总体上有重大变化或增加/删除了重要章节,则小数点主版本号加1。

 

1引言

1.1编写目的

本文档制定使用kafka集群的管理维护要求,解决因无规则操作而引起kafka集群的稳定性,制定规范命名和流程化的使用规则,从而降低后期维护、扩容、管理的成本。

1.2编写原则

根据内部项目管理规范则,从业务人员的角度对需求的阐述,以及对需求描述的细化程度。

此文档将在开发过程随着需求的变更而更改和修订。

1.3读者对象

项目经理、开发人员、业务人员、测试人员。

1.4需求来源

中间件团队。

1.5术语定义

1.5.1名词释义

术语

解释

Kafka

Apachekafka,高吞吐量的分布式消息系统

2操作

2.1Kafka集群排错

在不借助任何工具的情况下,对kafka集群进行排错。

(此方法快速有效)

2.1.1整体排错

运行

bin/kafka-topics.sh--describe--zookeeper172.17.162.235:

2181

Isr:

活着的broker节点

Leader:

使用的broker节点

查看isr,如果所有broker集群包含在里面,并且Leader都有相应的broker,则认为集群正常,

否则缺什么集群就单独进行排错。

2.1.2消费延迟排错

当发现消费延迟时运行

pidoffset:

为当前消费组的每个分区的消费偏移量

logSize:

为当前的日志大小。

Lag:

延迟消费数量。

解决:

当发现此分区消费延迟过高,就可以通过命令进行进行平衡。

>bin/kafka-preferred-replica-election.sh--zookeeper172.17.162.235:

2181

SuccessfullystartedpreferredreplicaelectionforpartitionsSet([test,1],[test,0])

2.1.3日志

logs/server.log:

为服务器运行日志。

logs/kafkaServer-gc.log:

为服务器运行日志。

2.2kafka集群搭建参数配置

此配置是在搭建kafka环境之前进行修改的。

字段名

默认

描述

num.partitions

待定

默认创建分区数,跟业务集群数对等。

log.retention.{ms,minutes,hours}

7day

在删除log文件之前,保存在磁盘的时间,

log.retention.bytes

-1

topic每个分区的最大文件大小,达到要求则执行删除。

auto.create.topics.enable

False

是否允许自动创建topic。

(我们来管理topic,所有是禁止自动创建的。

offsets.topic.num.partitions

100

偏移的提交topic的分区数目。

由于目前不支持部署之后改变,我们建议您使用生产较高的设置(例如,100-200)。

auto.leader.rebalance.enable

True

每当一个broker停止或崩溃,broke转移到其他的副本。

在默认情况下,当这个broker重新启动,它也只会跟随它的所有分区。

并不会用于客户端的读和写。

自动平衡

注意:

此配置像在搭建环境之前需要进行修改设定的。

更多配置需要等待kafka集群测试报告后,在新增加进去。

2.3Kafka迁移

如果集群新增机器5,6,部分集群机器的topic要进行迁移到新的broker节点上去。

例:

新增broker节点5,6,原有数据要迁移到5,6上去。

2.3.1创建迁移脚本

创建要进行迁移的topic

cattopics-to-move.json

{"topics":

[{"topic":

"foo1"},

{"topic":

"foo2"}],

"version":

1

}

 

2.3.2生成迁移规则

bin/kafka-reassign-partitions.sh--zookeeperlocalhost:

2181--topics-to-move-json-filetopics-to-move.json--broker-list"5,6"--generate

Currentpartitionreplicaassignment

{"version":

1,

"partitions":

[{"topic":

"foo1","partition":

2,"replicas":

[1,2]},

{"topic":

"foo1","partition":

0,"replicas":

[3,4]},

{"topic":

"foo2","partition":

2,"replicas":

[1,2]},

{"topic":

"foo2","partition":

0,"replicas":

[3,4]},

{"topic":

"foo1","partition":

1,"replicas":

[2,3]},

{"topic":

"foo2","partition":

1,"replicas":

[2,3]}]

}

Proposedpartitionreassignmentconfiguration

{"version":

1,

"partitions":

[{"topic":

"foo1","partition":

2,"replicas":

[5,6]},

{"topic":

"foo1","partition":

0,"replicas":

[5,6]},

{"topic":

"foo2","partition":

2,"replicas":

[5,6]},

{"topic":

"foo2","partition":

0,"replicas":

[5,6]},

{"topic":

"foo1","partition":

1,"replicas":

[5,6]},

{"topic":

"foo2","partition":

1,"replicas":

[5,6]}]

 

新建expand-cluster-reassignment.json,复制生成的规则放到文件中。

 

2.3.3执行

确认无误后,开始执行。

bin/kafka-reassign-partitions.sh--zookeeperlocalhost:

2181--reassignment-json-fileexpand-cluster-reassignment.json--execute

Currentpartitionreplicaassignment

{"version":

1,

"partitions":

[{"topic":

"foo1","partition":

2,"replicas":

[1,2]},

{"topic":

"foo1","partition":

0,"replicas":

[3,4]},

{"topic":

"foo2","partition":

2,"replicas":

[1,2]},

{"topic":

"foo2","partition":

0,"replicas":

[3,4]},

{"topic":

"foo1","partition":

1,"replicas":

[2,3]},

{"topic":

"foo2","partition":

1,"replicas":

[2,3]}]

}

Savethistouseasthe--reassignment-json-fileoptionduringrollback

Successfullystartedreassignmentofpartitions

{"version":

1,

"partitions":

[{"topic":

"foo1","partition":

2,"replicas":

[5,6]},

{"topic":

"foo1","partition":

0,"replicas":

[5,6]},

{"topic":

"foo2","partition":

2,"replicas":

[5,6]},

{"topic":

"foo2","partition":

0,"replicas":

[5,6]},

{"topic":

"foo1","partition":

1,"replicas":

[5,6]},

{"topic":

"foo2","partition":

1,"replicas":

[5,6]}]

}

 

2.3.4验证迁移结果

>bin/kafka-reassign-partitions.sh--zookeeperlocalhost:

2181--reassignment-json-fileexpand-cluster-reassignment.json--verify

Statusofpartitionreassignment:

Reassignmentofpartition[foo1,0]completedsuccessfully

Reassignmentofpartition[foo1,1]isinprogress

Reassignmentofpartition[foo1,2]isinprogress

Reassignmentofpartition[foo2,0]completedsuccessfully

Reassignmentofpartition[foo2,1]completedsuccessfully

Reassignmentofpartition[foo2,2]completedsuccessfully

数据迁移一旦开始无法停止,也不要强行停止集群,这样会造成数据不一致,带来无法挽回的后果。

注意:

kafka数据迁移的原理是先拷贝数据到目标节点,然后再删除原节点的数据。

这样的话如果集群原节点空间不足,不要继续指定其为迁移broker,这样将造成原节点空间用尽,例如原节点是broker为0,1,2,3,4就不要这样指定--broker-list"0,1,2,3,4",应该这样--broker-list"5,6"

2.4Kafkatopic管理

2.4.1创建topic

>bin/kafka-topics.sh--create--zookeeperlocalhost:

2181--replication-factor1--partitions1--topictest

由运维人员对开发人员申请的kafka新建topic主题进行统一管理,统一命名。

创建的kafka主题分区数和副本数不得超过集群本身,根据实际业务场景进行创建。

副本数最好一主一备,超过则影响性能。

2.4.2Topic新增分区

新增分区

>bin/kafka-topics.s

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1