最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

kafka集群管理(内部)

来源:动视网 责编:小OO 时间:2025-09-24 17:07:56
文档

kafka集群管理(内部)

翼支付Kafka集群管理(内部)需求规格说明书编写:xxx评审:XXX批准:XXX日期:2015-03-13文档信息及修改历史项目名称Kafka集群管理(内部)设计文档文档编号文档密级机密/秘密/内部/公开版本号修改日期编写评审批准修改内容填写说明:1、文档密级是该文档允许扩散的范围。2、版本号是指该文档的版本次序号,该文档首次发布时可确定为1.0,如果在上一版的基础上有细微的调整和修改,则可在小数点后次版本号加1;如果该文档内容总体上有重大变化或增加/删除了重要章节,则小数点主版本号加1。1
推荐度:
导读翼支付Kafka集群管理(内部)需求规格说明书编写:xxx评审:XXX批准:XXX日期:2015-03-13文档信息及修改历史项目名称Kafka集群管理(内部)设计文档文档编号文档密级机密/秘密/内部/公开版本号修改日期编写评审批准修改内容填写说明:1、文档密级是该文档允许扩散的范围。2、版本号是指该文档的版本次序号,该文档首次发布时可确定为1.0,如果在上一版的基础上有细微的调整和修改,则可在小数点后次版本号加1;如果该文档内容总体上有重大变化或增加/删除了重要章节,则小数点主版本号加1。1
翼支付

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

Apache kafka,高吞吐量的分布式消息系统
2操作

2.1Kafka集群排错

在不借助任何工具的情况下,对kafka集群进行排错。(此方法快速有效)

2.1.1整体排错

运行

bin/kafka-topics.sh --describe --zookeeper 172.17.162.235:2181

Isr:活着的broker节点

Leader:使用的broker节点

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

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

2.1.2消费延迟排错

当发现消费延迟时运行

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

logSize: 为当前的日志大小。

Lag:延迟消费数量。

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

>bin/kafka-preferred-replica-election.sh --zookeeper 172.17.162.235:2181

Successfully started preferred replica election for partitions Set([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-1topic每个分区的最大文件大小,达到要求则执行删除。
auto.create.topics.enableFalse是否允许自动创建topic。(我们来管理topic,所有是禁止自动创建的。)
offsets.topic.num.partitions100偏移的提交topic的分区数目。 由于目前不支持部署之后改变,我们建议您使用生产较高的设置(例如,100-200)。
auto.leader.rebalance.enableTrue每当一个broker停止或崩溃,broke转移到其他的副本。在默认情况下,当这个broker重新启动,它也只会跟随它的所有分区。并不会用于客户端的读和写。自动平衡

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

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

2.3Kafka迁移

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

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

2.3.1创建迁移脚本

创建要进行迁移的topic 

cat topics-to-move.json

{"topics": [{"topic": "foo1"},

 "version":1

}

2.3.2生成迁移规则

bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --topics-to-move-json-file topics-to-move.json --broker-list "5,6" --generate 

Current partition replica assignment

{"version":1,

 "partitions":[{"topifoo1

               {"topifoo1

               {"topifoo2

               {"topifoo2

               {"topifoo1

               {"topifoo2

}

Proposed partition reassignment configuration

{"version":1,

 "partitions":[{"topifoo1

               {"topifoo1

               {"topifoo2

               {"topifoo2

               {"topifoo1

               {"topifoo2

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

2.3.3执行

确认无误后,开始执行。

bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file expand-cluster-reassignment.json --execute

Current partition replica assignment

{"version":1,

 "partitions":[{"topifoo1

               {"topifoo1

               {"topifoo2

               {"topifoo2

               {"topifoo1

               {"topifoo2

}

Save this to use as the --reassignment-json-file option during rollback

Successfully started reassignment of partitions

{"version":1,

 "partitions":[{"topifoo1

               {"topifoo1

               {"topifoo2

               {"topifoo2

               {"topifoo1

               {"topifoo2

}

2.3.4验证迁移结果

> bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file expand-cluster-reassignment.json --verify

Status of partition reassignment:

Reassignment of partition [foo1,0] completed successfully

Reassignment of partition [foo1,1] is in progress

Reassignment of partition [foo1,2] is in progress

Reassignment of partition [foo2,0] completed successfully

Reassignment of partition [foo2,1] completed successfully 

Reassignment of partition [foo2,2] completed successfully 

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

注 意:kafka数据迁移的原理是先拷贝数据到目标节点,然后再删除原节点的数据。这样的话如果集群原节点空间不足,不要继续指定其为迁移broker,这 样将造成原节点空间用尽,例如原节点是broker为0,1,2,3,4就不要这样指定 --broker-list "0,1,2,3,4",应该这样 --broker-list "5,6"

2.4Kafka topic管理

2.4.1创建topic

>bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

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

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

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

2.4.2Topic新增分区

新增分区

>bin/kafka-topics.sh --zookeeper 172.17.162.235:2181 --alter --topic test --partitions 2

WARNING: If partitions are increased for a topic that has a key, the partition logic or ordering of the messages will be affected

Adding partitions succeeded!

注意:新增分区不得超过服务器集群数。

2.4.3删除topic

Kafka删除

> bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper 172.17.162.236:2181 --topic test

注意:因为目前线上版本为2.8.0-0.8.1.1,只是从kafka集群中删除topic,而持久层数据并没有移除。请勿在次创建删除过的topic名称。

(此操作是必须申请,否者是不允许操作)

文档

kafka集群管理(内部)

翼支付Kafka集群管理(内部)需求规格说明书编写:xxx评审:XXX批准:XXX日期:2015-03-13文档信息及修改历史项目名称Kafka集群管理(内部)设计文档文档编号文档密级机密/秘密/内部/公开版本号修改日期编写评审批准修改内容填写说明:1、文档密级是该文档允许扩散的范围。2、版本号是指该文档的版本次序号,该文档首次发布时可确定为1.0,如果在上一版的基础上有细微的调整和修改,则可在小数点后次版本号加1;如果该文档内容总体上有重大变化或增加/删除了重要章节,则小数点主版本号加1。1
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top