我是Apache NiFi的初学者,但直到现在,我读的所有教程都谈论了kafka与Nifi的集成。为什么kafka是Nifi的补充?为什么我们不直接使用Nifi来发布消息,而不使用kafka呢?
注:我看过的所有教程都没有提到这一点。
我是Apache NiFi的初学者,但直到现在,我读的所有教程都谈论了kafka与Nifi的集成。为什么kafka是Nifi的补充?为什么我们不直接使用Nifi来发布消息,而不使用kafka呢?
注:我看过的所有教程都没有提到这一点。
我在Hortonworks社区的问题中发现了一个有趣的答案,为了完整起见,在这里分享一下:
Apache NiFi和Apache Kafka是两种不同的工具,具有不同的用途,可能略有重叠。以下是我对这两个项目目的的理解。
NiFi是“一个易于使用、强大且可靠的系统,用于处理和分发数据。”
它是一种可视化工具(具有REST API),实现基于流的编程,使用户能够创建流,从各种不同的来源获取数据,在处理数据时执行增强、路由等操作,并将结果输出到各种不同的目标。在此过程中,它捕获元数据(溯源),记录每个数据块(FlowFile)通过流程时发生了什么,以进行审计日志记录和故障排除。
"Apache Kafka是重新设计为分布式提交日志的发布-订阅消息"
它是发布-订阅模式的分布式实现,允许开发人员在不同的语言和大量机器之间连接程序。它更像是分布式计算的构建块,而不是处理数据的一体化解决方案。
Kafka / NiFi : Better together
简而言之:
NiFi和Kafka互为补充
NiFi
• 提供数据流解决方案
• 从边缘到核心的集中管理
• 出色的可追溯性,事件级数据溯源始于数据生成时
• 交互式命令和控制
• 实时运营可见性
• 数据流管理,包括优先级设置、反向压力和边缘智能
• 全局数据流的可视化表示
Kafka
• 提供持久的流存储
• 低延迟
• 分布式数据耐用性
• 生产者和消费者的分散管理
• 还有更多其他功能...