【云小课】应用平台第7课 Kafka Manager,您的Kafka界面管理专家
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
在控制台创建Topic,Topic中许多参数无法设置。
在华为云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。
|
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分区总数不同,具体戳这里。
- 点赞
- 收藏
- 关注作者
评论(0)