【云小课】应用平台第7课 Kafka Manager,您的Kafka界面管理专家

应用万花筒 发表于 2020/08/28 10:05:44 2020/08/28
【摘要】 Kafka Manager是一款当前比较流行的Kafka集群管理工具,通过Web界面管理Kafka集群,相比命令行更加直观、易上手。本期云小课主要聚焦创建Topic和增加分区数的操作。

Kafka是一个拥有高吞吐、可持久化、可水平扩展、支持流式数据处理等多种特性的分布式消息流处理中间件,采用分布式消息发布与订阅机制,在日志收集、流式数据传输、在线/离线系统分析、实时监控等领域有广泛的应用。



华为云Kafka服务是一款基于开源社区版Kafka提供的消息队列服务,向您提供计算、存储和带宽资源独占式的Kafka专享实例。华为云Kafka控制台提供购买实例、创建Topic、开启转储和变更规格等功能,但是在控制台创建Topic时,Topic中许多参数无法设置Topic创建完成后无法增加分区数。

Topic命名规则:

  • 华为云Kafka控制台:创建Topic时,支持设置分区数、副本数、老化时间、是否同步复制和是否同步落盘。

  • Kafka Manager:创建Topic时,支持设置分区数、副本数、老化时间、broker接收Topic消息的最大长度、Topic日志段文件的大小和Topic的压缩类型等等。

增加分区数:

Topic创建完成后,一般出现以下情况时,需要增加分区数。

  • 创建Topic时,设置的分区数比较小,不满足业务需求。

  • 生产消息的速度远远大于消费消息,导致消息阻塞。

如果您正在遭受以上2个问题的困扰,那就让我们一起来学习下通过Kafka Manager创建Topic和增加分区数吧。当然,Kafka Manager除了这2个功能,还包括查看集群信息、查看主机节点信息和查看消费组信息等,本期云小课暂不介绍,感兴趣的童鞋戳这里

使用Kafka Manager前,您需要先购买Kafka实例:戳这里。本期云小课以开启公网访问的Kafka实例为例介绍,如果未开启公网访问,需要通过一台与Kafka实例相同VPC和相同安全组的Windows弹性云服务器访问Kafka Manager购买Kafka实例后,您可以通过浏览器登录Kafka Manager,无需另外安装。

登录Kafka Manager

1、华为云Kafka控制台,单击实例名称,进入实例详情界面。

2、在“实例信息”中查看Kafka Manager登录地址、用户名和密码。

如果您忘记了密码,单击“重置Manager密码”,修改密码。

3、在浏览器中输入Kafka Manager登录地址,弹出登录对话框,输入用户名和密码。

创建Topic

在控制台创建TopicTopic中许多参数无法设置。

在华为云Kafka控制台创建Topic:

1、在华为云Kafka控制台中,单击实例名称,进入实例详情界面。

2、在“Topic管理”页签,单击“创建Topic”,输入以下参数,单击“确定”。

参数

说明

Topic名称

系统为您自动生成了Topic名称,您可以根据需要修改。

创建Topic后不能修改名称。

分区数

设置Topic的分区数,分区数越大消费的并发度越大。该参数设置为1时,消费消息时会按照先入先出的顺序进行消费。

取值范围:1-20,默认值:3

副本数

为每个Topic设置副本的数量,Kafka会自动在每个副本上备份数据,当其中一个Broker节点故障时数据依然是可用的,副本数越大可靠性越高。该参数设置为1时,表示只有一份数据。

取值范围:1-3,默认值:3

老化时间

Topic中的消息超过老化时间后,消息将会被删除,老化的消息无法被消费。

取值范围:1-168,默认值:72

同步复制

指后端收到生产消息请求并复制给所有副本后,才返回客户端。开启同步复制后,需要在客户端配置acks=-1,否则无效。

当副本数为1时,不能选择同步复制功能。

同步落盘

同步落盘是指生产的每条消息都会立即写入磁盘。

  • 开启:生产的每条消息都会立即写入磁盘,可靠性更高。

  • 关闭:生产的消息存在内存中,不会立即写入磁盘。


Kafka Manager创建Topic

1、Kafka Manager中,单击kafka_cluster,进入集群详情界面。

2、单击“Topic > Create”,进入创建Topic界面。

3、输入以下参数,单击“Create”。

参数

说明

Topic

Topic名称,您可以根据需要修改。

创建Topic后不能修改名称。

Partitions 设置Topic的分区数,分区数越大消费的并发度越大。
Replication Factor 为每个Topic设置副本的数量,Kafka会自动在每个副本上备份数据,当其中一个Broker节点故障时数据依然是可用的,副本数越大可靠性越高。
retention.ms 设置持有该Topic单个分区消息的最长时间。
max.message.bytes 设置broker接收该Topic消息的最大长度。
segment.index.bytes 设置offsets和文件位置之间映射的索引文件的大小。建议不要修改这个值。
segment.bytes 设置Topic日志段文件的大小。
min.cleanable.dirty.ratio 控制log压缩器清除日志的频率。默认情况下,将避免清除压缩率超过50%的日志。这个比率避免了最大的空间浪费。
min.insync.replicas producer设置request.required.acks-1时,min.insync.replicas指定replicas的最小数目(必须确认每一个repica的写数据都是成功的),如果这个数目没有达到,producer会产生异常。
delete.retention.ms 对于压缩日志保留的最长时间,也是客户端消费消息的最长时间。
flush.messages

指定一个时间间隔,它将用于写入到日志的数据强制进行文件同步。

例如:如果这个值被设置为1,将在每条消息之后进行文件同步。如果是5,将在每5条消息后进行文件同步。建议不要设置这个值。

preallocate 是否为该Topic日志文件提前分配存储空间。
retention.bytes

如果使用“delete”的保留策略,这项配置就是指在删除日志之前,日志所能达到的最大尺寸。

默认情况下,没有尺寸限制,只有时间限制。

flush.ms

强制进行fsync日志到磁盘的时间间隔。

例如,如果设置为1000,那么每1000ms就需要进行一次fsync。建议不要设置这个值。

cleanup.policy

Topic的日志保留策略,取值为:delete或者compact

  • delete:当日志的回收时间或者尺寸限制到达时将丢弃旧的部分。

  • compact:当日志的回收时间或者尺寸限制到达时将压缩日志。

file.delete.delay.ms 从文件系统删除一个文件之前的等待时间。
segment.jitter.ms logRollTimeMillis减少的最大随机抖动。
index.interval.bytes

控制Kafka添加一个索引入口到它的偏移索引的频率。

默认设置是确保索引信息大约每4096字节。更多的索引允许在日志中读取时跳跃到离期望的位置更近的地方,但是这样会让索引更大。建议不要设置这个值。

compression.type 设置Topic的压缩类型。
segment.ms 控置时间周期,即使log的分块文件没有达到需要删除、压缩的大小,一旦log的时间达到这个上限,就会强制新建一个log分块文件。
unclean.leader.election.enable 是否为Topic启用unclean选举。


显示“Done”,表示创建成功。

增加分区数

创建成功Topic后,分区数只支持增加,不支持减少,欲知详情戳这里

1 Kafka Manager中,单击“Topic > List”,进入Topic列表界面。

2、单击Topic名称,进入Topic详情界面。

3、单击“Add Partitions”,进入增加分区界面。

4、输入分区数,单击“Add Partitions”。

显示“Done”,表示分区增加成功。

增加的分区数不能超过Topic分区总数,否则会增加失败。不同规格的Kafka实例Topic分区总数不同,具体戳这里


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。