【发布时间】:2018-05-25 16:35:03
【问题描述】:
在研究kafka的文档中我找到了下一句:
队列是大多数人想到的标准消息传递类型:消息由应用程序的一个部分生成,并由该相同应用程序的另一部分使用。其他应用程序对这些消息不感兴趣,因为它们用于协调单个系统的动作或状态。这种类型的消息用于发送电子邮件、分发由另一个在线应用程序计算的数据集或与后端组件协调。
这意味着 Kafka 主题不适合将数据流式传输到外部应用程序。但是,在我们的应用程序中,我们将 Kafka 用于此目的。我们有一些消费者从 Kafka 主题中读取消息并尝试将它们发送到外部系统。使用这种方法,我们会遇到很多问题:
每个外部应用程序都需要一个单独的主题(假设外部应用程序编号的数量 > 300,不适合)
当外部应用程序不可用或其他原因时,发送到外部系统的消息可能会失败。不断重试发送相同的消息而不提交偏移量是不正确的。另一种方式是,当我可以看到所有失败消息并尝试重新发送它们时,没有配置好的日志。
将数据流式传输到外部应用程序的其他最佳实践方法是什么?或者 Kafka 是一个不错的选择?
【问题讨论】:
标签: apache-kafka