操作场景
Topic(主题)是某一种分类的名字,消息在 Topic 中可以被存储和发布。CKafka 对外使用 Topic 的概念,生产者往 Topic 中写消息,消费者从 Topic 中读消息。为了做到水平扩展,一个 Topic 实际是由多个 Partition(分区)组成,遇到瓶颈时,可以通过增加 Partition 的数量进行横向扩容。
本文介绍在 CKafka 控制台创建一个 Topic 的操作步骤。
前提条件
操作步骤
步骤1:创建 Topic
1. 登录 CKafka 控制台。
2. 在实例列表页,单击目标实例的“ID/名称”,进入实例详情页。
3. 在实例详情页,单击页面顶部的 Topic 管理,单击新建。
4. 在编辑 Topic 窗口中,选择分区数和副本数等信息。
名称:Topic 名称,输入后无法更改,名称只能包含字母、数字、下划线、“-”和“.”,不支持以“双下划线”开头。
分区数:一个物理上分区的概念,一个 Topic 可以包含一个或者多个 partition,CKafka 以 partition 作为分配单位。分区数配置参考文档参数配置说明。
副本数:Partition 的副本个数,用于保障 Partition 的高可用。为保障数据可靠性,默认开启2副本。副本数也算分区个数,例如客户创建了1个 Topic、6个分区、2个副本,那么分区额度一共用了1 × 6 × 2 = 12个。
注意
设置为单副本会导致可用性无法保证,请谨慎操作。
标签:设置资源标签,关于标签的详细介绍请参见 标签管理。
预设 ACL 策略:勾选提前设置好的 ACL 策略,关于 ACL 策略详情请参见 配置 ACL 策略。
5. 单击提交,完成 Topic 创建。
步骤2:配置 Topic 高级参数
1. 在实例列表页,单击目标实例的“ID/名称”,进入实例详情页。
2. 在实例详情页,单击 topic 管理标签页。
3. 单击操作列的编辑 > 展示高级配置,设置如下参数:
参数说明如下:
参数名 | 默认值 | 参数范围 | 说明 |
cleanup.policy | delete | delete/compact | 支持日志按保存时间删除,或者日志按 key 压缩(Kafka Connect 时需要使用 compact 模式)。 |
min.insync.replicas | 1 | - | 当 producer 设置 request.required.acks 为1时,min.insync.replicas 指定 replicas 的最小数目。 |
unclean.leader.election.enable | true | true/false | 指定是否能够设置不在 ISR 中 replicas 作为 leader。 |
segment.ms | - | 1- 90days | Segment 分片滚动的时长,单位为 ms。 |
retention.ms | 默认为实例的消息保留时间 | 60000ms - 90days | Topic 维度的消息保留时间。 |
retention.bytes | 默认为实例的消息保留大小 | 1GB - 1024GB | 分区数 * rentention.bytes = 当前topic的消息保留大小,对于一个 Topic,如果同时设置了消息保留时间和消息保留大小,实际保留消息时会以先达到的阈值为准。 |
max.message.bytes | - | 1KB - 12MB | Topic 维度的最大消息大小。不填写则默认实例维度消息大小为1MB。 |