【发布时间】:2019-05-22 17:31:03
【问题描述】:
我对 Kafka 流及其工作方式有一些疑问,我对一般 Kafka 消费者和生产者范式有经验,但是,这是我第一次尝试使用 Kafka 流。
问题:
- 在一般的 Kafka 消费者模型中,我们订阅一个主题并从一个分区开始消费,为了简单起见,假设我们有 1 个分区和 1 个消费者,现在如果我们想增加我们的处理能力,我们会增加分区的数量并另外添加更多消费者,这在 Kafka Streams 中如何工作,如果我们增加分区,我们应该如何扩展应用程序,我们需要添加更多机器还是需要做其他事情?
- 当我通过 Kafka 消费者使用数据时,我最终可能会对消息进行处理,例如,我可能会查询 API 下载文件并写入 NFS 并转发消息或将传入消息值写入数据库,然后将通知转发到另一个 Kafka 主题,如何解决相同的用例,我们没有遵循
KAFKA -> KAFKA的范例,而是使用KAFKA -> PROCESS(STORE IN DB) -> KAFKA,Kafka Streams 甚至可以解决这个用例吗? - 最后,如何处理异常以及如何管理偏移量。在一个不断运行的生产系统中,有源源不断的消息流来,如果出现任何异常,比如由于任何网络中断,我们会关闭消费者并进行清理启动。如何使用 Kafka Stream 处理应用实现相同的功能?
【问题讨论】:
标签: apache-kafka apache-kafka-streams