Topic 创建完成后,您可根据业务需求修改 Topic 配置,例如调整分区数、消息保留策略等关键参数,以优化消息吞吐性能、提升数据可靠性。
约束与限制
Topic 创建完成后不支持修改 Topic 名称。
操作步骤
1. 登录 CKafka 控制台。
2. 在左侧导航栏单击实例列表,单击目标实例的“ID/名称”,进入实例详情页。
3. 在实例详情页,单击 Topic 列表页签,在 Topic 列表页面,单击操作栏的编辑。
4. 在弹窗中修改 Topic 配置信息。
5. (可选)单击展开高级配置,设置如下参数:
参数名 | 说明 |
消息时间戳类型 | 定义消息中的时间戳类型: CreateTime:生产者创建这条消息的时间,由于客户端的时间可能和服务器时间存在偏差,需要检查写入的时间是否是正确的时间。 LogAppendTime:服务端 Broker 接收到消息的时间。 |
预设 ACL 策略 | |
cleanup.policy | Topic 日志的清理策略: delete:日志按保存时间删除,根据配置的消息保留时间保存消息,在磁盘容量不足时会自动清理旧数据以保证服务可用性,适合普通消息队列场景。 compact:日志按 Key 压缩,确保相同 Key 的消息只保留最新的 Value。适用于系统宕机后恢复状态,系统重启后重新加载缓存等场景。例如使用 Kafka Connect 或 Confluent Schema Registry时,需要使用 Kafka Compact Topic 存储系统状态信息或配置信息。 delete.compact:组合策略,先压缩 key 保留最新值,再删除过期数据。适用于混合型数据如社交消息流。 |
min.insync.replicas | 指定生产者发送消息时必须成功写入的最少同步副本(ISR)数量。范围在1到 Topic 最大副本数之间。值越高,数据安全性越强(容忍更多节点故障),但会降低可用性(当 ISR 不足时服务不可写)。 当 producer 设置 request.required.acks 为1时,min.insync.replicas 指定为 replicas 的最小数目。 |
unclean.leader.election.enable | 是否允许从非同步副本(Out-of-Sync Replicas, OSR)中选举新的Leader。 true(默认):允许从 OSR 选举 Leader,优先保证可用性。 false:仅允许从同步副本(ISR)中选举 Leader,优先保证数据一致性。 |
segment.ms | Segment 分片滚动的时长,范围1 到90 天,最小单位为 ms。 |
retention.bytes | 分区维度的消息保留大小,范围1 到1024 GB。 分区数 * retention.bytes = 当前 Topic 的消息保留大小,对于一个 Topic,如果同时设置了消息保留时间和消息保留大小,实际保留消息时会以先达到的阈值为准。 |
max.message.bytes | 单条消息最大允许大小,范围1 KB到12 MB。客户端发送数据时,会将发往同一个分区的数据聚合起来,统一发送,服务端会比较每一批次的消息大小。 |
6. 单击提交,完成修改。