如何通过Dapr配置Kafka主题的retention.ms属性
Dapr Kafka Pubsub 配置主题retention.ms 操作指南
场景1:由Dapr自动创建Kafka主题
直接在你的pubsub.yaml配置文件的spec.metadata节点下新增topicRetentionDuration配置项,该参数直接对应Kafka的retention.ms属性,值为时长格式,修改后的完整配置示例如下:
apiVersion: dapr.io/v1alpha1 kind: Component metadata: name: pubsub namespace: default spec: type: pubsub.kafka version: v1 metadata: # Kafka broker连接配置 - name: brokers value: "kafka:9092" - name: authRequired value: "false" - name: initialOffset value: "oldest" - name: maxMessageBytes value: 8192 # 新增配置:对应Kafka主题retention.ms,示例为保留7天 - name: topicRetentionDuration value: "168h"
配置说明:
- 时间单位支持
h(小时)、m(分钟)、s(秒),Dapr会自动转换为毫秒值写入Kafka主题配置 - 该配置仅对Dapr新创建的主题生效,不会修改已存在的主题参数
场景2:Kafka主题已提前创建
如果对应主题已经在Kafka集群中存在,Dapr的组件配置不会覆盖原有主题属性,需要直接通过Kafka官方命令行工具修改:
# 示例:将指定主题retention.ms设置为7天(7*24*3600*1000=604800000毫秒) ./kafka-topics.sh --alter --bootstrap-server kafka:9092 --topic 你的实际主题名称 --config retention.ms=604800000
注意事项
- 如需为不同主题设置不同的留存时间,Dapr全局组件配置不支持差异化设置,需提前为每个主题单独通过Kafka命令行配置完成后再使用
- 修改已存在主题配置后立即生效,无需重启Dapr服务或应用
内容的提问来源于stack exchange,提问作者Marko Jovanović
相关产品推荐
相关产品推荐

