【发布时间】: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