翼支付
Kafka集群管理(内部)
需求规格说明书
编写:xxx 评审:XXX 批准:XXX
日期:2015-03-13
BSSP 需求规格说明书
文档信息及修改历史
项目名称 Kafka集群管理(内部)设计文档 文档编号 版本号 填写说明: 1、 文档密级是该文档允许扩散的范围。 2、 版本号是指该文档的版本次序号,该文档首次发布时可确定为1.0,如果在上一版的基础上有细微的调整和修改,则可在小数点后次版本号加1;如果该文档内容总体上有重大变化或增加/删除了重要章节,则小数点主版本号加1。 修改日期 编写 评审 文档密级 批准 机密/秘密/内部/公开 修改内容 BESTPAY
第2页共13页
BSSP 需求规格说明书
目录
Kafka集群管理(内部) ............................................................................................................... 1 1 引言............................................................................................................................................ 4 1.1 1.2 1.3 1.4 1.5
编写目的 ............................................................................................................................. 4 编写原则 ............................................................................................................................. 4 读者对象 ............................................................................................................................. 4 需求来源 ............................................................................................................................. 4 术语定义 ............................................................................................................................. 4 1.5.1 名词释义 ................................................................................................................... 4
2 操作............................................................................................................................................ 5 2.1 Kafka集群排错 .................................................................................................................. 5 2.1.1 整体排错 ................................................................................................................... 5 2.1.2 消费延迟排错 ........................................................................................................... 5 2.1.3 日志........................................................................................................................... 6 2.2 kafka集群搭建参数配置 ................................................................................................... 6 2.3 Kafka迁移 .......................................................................................................................... 6
2.3.1 创建迁移脚本 ........................................................................................................... 7 2.3.2 生成迁移规则 ........................................................................................................... 7 2.3.3 执行........................................................................................................................... 8 2.3.4 验证迁移结果 ........................................................................................................... 9 2.4 Kafka topic管理 ............................................................................................................... 10
2.4.1 创建topic ................................................................................................................ 10 2.4.2 Topic新增分区 ....................................................................................................... 10 2.4.3 删除topic ................................................................................................................ 10
BESTPAY
第3页共13页
BSSP 需求规格说明书
1 引言
1.1 编写目的
本文档制定使用kafka集群的管理维护要求,解决因无规则操作而引起kafka集群的稳定性,制定规范命名和流程化的使用规则,从而降低后期维护、扩容、管理的成本。 1.2 编写原则 根据内部项目管理规范则,从业务人员的角度对需求的阐述,以及对需求描述的细化程度。此文档将在开发过程随着需求的变更而更改和修订。 1.3 读者对象 项目经理、开发人员、业务人员、测试人员。 1.4 需求来源 中间件团队。 1.5 术语定义 1.5.1 名词释义 术语 解释 Kafka Apache kafka,高吞吐量的分布式消息系统 BESTPAY
第4页共13页
BSSP 需求规格说明书
2 操作
2.1 Kafka集群排错
在不借助任何工具的情况下,对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])
BESTPAY
第5页共13页
BSSP 需求规格说明书
2.1.3 日志
logs/server.log:为服务器运行日志。
logs/ kafkaServer-gc.log:为服务器运行日志。
2.2 kafka集群搭建参数配置 此配置是在搭建kafka环境之前进行修改的。 字段名 num.partitions log.retention.{ms,minutes,hours} log.retention.bytes auto.create.topics.enable 默认 待定 7day -1 False 描述 默认创建分区数,跟业务集群数对等。 在删除log文件之前,保存在磁盘的时间, topic每个分区的最大文件大小,达到要求则执行删除。 是否允许自动创建topic。(我们来管理topic,所有是禁止自动创建的。) 偏移的提交topic的分区数目。 由于目前不支持部署之后改变,我们建议您使用生产较高的设置(例如,100-200)。 每当一个broker停止或崩溃,broke转移到其他的副本。在默认情况下,当这个broker重新启动,它也只会跟随它的所有分区。并不会用于客户端的读和写。自动平衡 offsets.topic.num.partitions 100 auto.leader.rebalance.enable True 注意:此配置像在搭建环境之前需要进行修改设定的。 更多配置需要等待kafka集群测试报告后,在新增加进去。 2.3 Kafka迁移
如果集群新增机器5,6,部分集群机器的topic要进行迁移到新的broker节点上去。 例:新增broker节点5,6,原有数据要迁移到5,6上去。
BESTPAY
第6页共13页
BSSP 需求规格说明书
2.3.1 创建迁移脚本
创建要进行迁移的topic cat topics-to-move.json {\"topics\": [{\"topic\": \"foo1\ {\"topic\": \"foo2\ \"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\":[{\"topic\":\"foo1\ {\"topic\":\"foo1\ {\"topic\":\"foo2\ {\"topic\":\"foo2\ {\"topic\":\"foo1\ {\"topic\":\"foo2\ } Proposed partition reassignment configuration {\"version\":1, \"partitions\":[{\"topic\":\"foo1\ {\"topic\":\"foo1\ {\"topic\":\"foo2\ {\"topic\":\"foo2\ {\"topic\":\"foo1\ {\"topic\":\"foo2\ 新建expand-cluster-reassignment.json,复制生成的规则放到文件中。
BESTPAY
第7页共13页
BSSP
需求规格说明书
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\":[{\"topic\":\"foo1\ {\"topic\":\"foo1\ {\"topic\":\"foo2\ {\"topic\":\"foo2\ {\"topic\":\"foo1\ {\"topic\":\"foo2\} Save this to use as the --reassignment-json-file option during rollback Successfully started reassignment of partitions {\"version\":1, \"partitions\":[{\"topic\":\"foo1\ {\"topic\":\"foo1\ {\"topic\":\"foo2\ {\"topic\":\"foo2\ {\"topic\":\"foo1\ {\"topic\":\"foo2\ }
BESTPAY
第8页共13页
BSSP
、 需求规格说明书
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\" 、
BESTPAY
第9页共13页
BSSP 需求规格说明书
2.4 Kafka 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.2 Topic新增分区 新增分区 >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名称。
(此操作是必须申请,否者是不允许操作)
BESTPAY
第10页共13页
BSSP
需求规格说明书
BESTPAY
第11页共13页
BSSP 需求规格说明书
BESTPAY
第12页共13页
BSSP 需求规格说明书
BESTPAY
第13页共13页
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务