繁体   English   中英

从Kafka中间主题中删除消息

[英]Removing message from Kafka intermediate topic

我有一个名为SOURCE的主题,其中包含两种消息流,即A和B。我编写了一个使用该主题的kafka-streams应用程序,找到了具有相同相关ID的A和B,并将它们聚合成一个新的消息C并将其放在输出主题DESTINATION上

有时A而不B(或者反之亦然)会放在SOURCE主题上。 我创建了一个可查询的状态存储,因此我可以查看这些悬空的消息,但是现在我想从中间主题中删除特定的消息。 我猜这只是用正确的键(我拥有)获取消息并将主体的null插入中间主题的问题。 问题是最好的方法是什么?

  1. 对SOURCE产生特殊的清除消息,这将导致聚合消息变为空
  2. 使用空数据直接将消息写到中间主题
  3. 其他方式,也许kafka-streams已经为此提供了API调用?

额外的问题:如果我不希望消息在中间主题中停留超过6个月,我可以指示kafka-streams创建保留6m的中间主题,还是应该在运行主题之前自行创建主题应用程式?

额外的问题:如果我不希望消息在中间主题中停留超过6个月,我可以指示kafka-streams创建保留6m的中间主题,还是应该在运行主题之前自行创建主题应用程式?

是的,您可以设置保留时间,例如:

kafka/bin/kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --entity-name my_topic --alter --add-config retention.ms=16070400000

或在创建主题时:

kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 10 --if-not-exists --config retention.ms=16070400000 --topic my_topic

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM