在我发现的下一句话的文件中学习kafka:
排队是大多数人想到的标准消息传递类型:消息由应用程序的一部分生成,并由相同应用程序的另一部分使用。其他应用程序对这些消息不感兴趣,因为它们用于协调单个系统的操作或状态。此类消息用于发送电子邮件,分发由其他在线应用程序计算的数据集,或与后端组件协调。
这意味着Kafka主题不适合将数据流式传输到外部应用程序。但是,在我们的应用程序中,我们将Kafka用于此目的。我们有一些消费者从Kafka主题中读取消息并尝试将它们发送到外部系统。通过这种方法,我们遇到了许多问题:
每个外部应用程序都需要一个separet主题(假设外部应用程序编号的数量> 300,不适合)
当外部应用程序不可用或出于其他原因,发送到外部系统的消息可能会失败。保持重试以发送相同的消息而不提交偏移量是不正确的。另一种方法是,当我看到所有失败消息并尝试重新发送时,没有配置良好的日志。
将数据流式传输到外部应用程序的其他最佳实践方法是什么?或卡夫卡是一个很好的选择吗?
答案 0 :(得分:1)
分享一段经验。我们广泛使用Kafka在企业环境中集成外部应用程序。