我有一个Kafka主题,有多个消费群体。如果没有被所有使用者组读取,我需要在持久性持续时间到期时不要删除主题上的消息。是否可以在持续时间之外设置其他持久性规则?我需要的信息总是停留在一个主题,如果他们从来没有被消费。如果消息未被使用并且持续时间已过期,是否可以“刷新”消息的超时?
z9zf31ra1#
这在Kafka是不可能的。Kafka-不像许多更传统的消息代理-不跟踪哪些消息已经或没有被消费。这是消费者的责任。因为代理没有跟踪这个,所以它不能基于这个进行主题清理。在某些情况下,您可以使用压缩主题来保留每个键的最后一条消息。多亏了这一点,即使是连接晚的消费者也可以恢复状态。但这只适用于特定的数据类型,如状态更改等。
1条答案
按热度按时间z9zf31ra1#
这在Kafka是不可能的。Kafka-不像许多更传统的消息代理-不跟踪哪些消息已经或没有被消费。这是消费者的责任。因为代理没有跟踪这个,所以它不能基于这个进行主题清理。
在某些情况下,您可以使用压缩主题来保留每个键的最后一条消息。多亏了这一点,即使是连接晚的消费者也可以恢复状态。但这只适用于特定的数据类型,如状态更改等。