我有一个名为SOURCE的主题,其中包含两种消息A和B的流。我编写了一个消耗该主题的kafka-streams应用程序,找到具有相同相关ID的A和B并聚合它们到新消息C并将其放在输出主题DESTINATION
上有时A没有B(或反之亦然)会出现SOURCE主题。我创建了一个可查询的状态存储,因此我可以查看这些悬空消息,但现在我想删除中间主题中的特定消息。我猜这只是用正确的密钥(我有)得到一条消息的问题,并将主体纳入中间主题。问题是最好的方法是什么?
奖金问题:如果我知道我不希望消息在中间主题中停留超过6个月,我是否可以指示kafka-streams创建具有6米保留时间的中间主题,或者我应该自己手动创建主题我运行应用程序?
答案 0 :(得分:0)
奖金问题:如果我知道我不希望消息在中间主题中停留超过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