【问题标题】:How to identify unprocessed messages after KAFKA topic consumptionKAFKA主题消费后如何识别未处理的消息
【发布时间】:2016-03-24 05:38:18
【问题描述】:

场景:

Stream create [StreamName] --definition " Kafka -zkconnect=10.10.10.1:2181 --topic=<topic name> | MyCompositeModule " --deploy

我们在分布式模式下运行这个流,redis 是传输总线。 根据我的理解,kafka 源通过 [streamname]-kafka-offsets 主题维护 MyCompositeModule (这是一个接收器,作为通过“模块撰写”过程创建的模块)使用的消息的偏移量。这是不可读的,如果有办法从这个主题中读取数据,我将不胜感激。

另外,当我从 kafka 源推送消息时,消息在 redis 传输中排队,然后模块从这个队列中获取它们。

如果kafka消费者模块开始从kafka redis队列消费1000条消息-复合模块在收到10条消息或随机处理10条消息后失败。那么如何识别剩余990[1000(消费)-10(已处理)=990]未处理消息。 即使我们检查 kafka 偏移量,它也会显示消耗的消息数。示例:-kafka.offsets - 在我们的进程中是不可读的。

所以所有未处理的消息都将在 Redis 队列中,因为我们在 SpringXD 中使用 Redis。那么任何人都可以帮助我如何识别未处理的消息和 重新发送到复合模块进行处理。

基本上,我正在寻找有关稳健交付的优雅解决方案的建议,当从 kafka 源消费时,在 spring xd 流中添加故障处理能力。

【问题讨论】:

    标签: offset apache-kafka spring-xd


    【解决方案1】:

    如果消息从 Kafka 被有效消费并移动到总线,那么从偏移管理器的角度来看,它们将被确认为已消费。

    您可以尝试为 Redis 消息总线启用重试和死信,如下所述:http://docs.spring.io/spring-xd/docs/current/reference/html/#error-handling-message-delivery-failures

    干杯, 马吕斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      • 2022-06-15
      • 2020-12-07
      • 2018-07-27
      • 2018-08-14
      相关资源
      最近更新 更多