【问题标题】:Difference between kafka and nifikafka和nifi的区别
【发布时间】:2018-11-29 10:18:42
【问题描述】:

我是 Apache NiFi 的初学者,但到目前为止,我阅读的所有教程都在谈论 kafka 与 Nifi 的集成。 kafka 是如何与 Nifi 互补的?为什么我们不直接使用 Nifi 来发布我们的消息而不使用 kafka?

注意:我看到的所有教程都没有谈到这一点。

【问题讨论】:

    标签: apache-kafka apache-nifi


    【解决方案1】:

    NiFi 和 Kafka 在 NiFi 不是像 Apache Kafka 那样的消息传递队列的意义上是互补的。相反,Apache NiFi 是一种数据流管理,也就是数据物流工具。

    让我们假设这种情况:您有消息(JSON 格式)通过 Kafka 进行流式传输,并且您想要验证消息以检查消息是否包含所有字段,如果它们有效,您希望消息到达 HBase .

    这里 NiFi 可以通过以下方法帮助您:

    • NiFi 具有 ConsumeKafka 处理器,您可以使用 Kafka 代理和组名称进行配置。
    • 使用NiFi处理器ValidateRecord检查收到的消息是否全部有效
    • 如果它们有效,您可以将输出连接到PutHBaseRecord

    总而言之,NiFi 基本上可以防止您编写大量样板代码。在这种情况下,一个自定义逻辑来进行模式验证和写入 HBase。

    【讨论】:

    • 只是想知道是否可以在kafka中实现nifi流文件存储。这样 nifi 队列将是一个 kafka 队列。会有效率吗?
    • NiFi 的队列和存储库非常适合 NiFi 的需求,所以我不确定这是否可行
    • @daggett 您必须重写 Nifi 存储 FlowFiles 的方式,并且 Kafka 的默认最大消息大小为 1M,而 FlowFile 可以大于此,但假设已解决,然后实现他们也需要 Kafka 序列化程序
    【解决方案2】:

    Horthonworks community questions找到一个有趣的答案,为了完整起见,我在这里分享:

    • Apache NiFi 和 Apache Kafka 是两个不同的工具,具有不同的用例,可能略有重叠。以下是我对这两个项目目的的理解。

      NiFi 是“An easy to use, powerful, and reliable system to process and distribute data.

      它是一个可视化工具(带有 REST api),它实现了flow-based programming,使用户能够制作从各种不同来源获取数据的流程,在数据上执行丰富、路由等处理,并将结果输出到各种目的地。在此过程中,它会捕获有关每条数据 (FlowFile) 在通过 Flow 时发生的情况的元数据(来源),以用于审计日志记录和故障排除。

    • Apache Kafka is publish-subscribe messaging rethought as a distributed commit log

      它是发布-订阅模式的分布式实现,允许开发人员使用不同的语言和跨大量机器将程序相互连接。它更像是分布式计算的构建块,而不是处理数据的一体化解决方案。

    【讨论】:

      【解决方案3】:

      作为对前面答案的补充,这里有一个宝贵的资源,非常清楚地解释了如何结合这两种技术,尤其是为什么要这样做,并附有插图示例。

      我发现它非常有价值,每当我需要对此主题进行记忆复习时,它都是一个 goto 参考。

      Kafka / NiFi : Better together

      简而言之:

      NiFi 和 Kafka 是互补的

      NiFi
      • 提供数据流解决方案
      • 从边缘到核心的集中管理
      • 出色的可追溯性,从数据诞生时开始的事件级数据出处
      • 交互式命令和控制
      • 实时运营可见性
      • 数据流管理,包括优先级、背压和边缘智能
      • 全局数据流的可视化表示

      卡夫卡
      • 提供持久的流存储
      • 低延迟
      • 分布式数据持久性
      • 生产者和消费者的分散管理
      • 还有很多很多...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-25
        • 2020-07-25
        • 2023-03-02
        • 2017-11-09
        • 2017-08-31
        • 1970-01-01
        • 2018-12-07
        • 2020-11-19
        相关资源
        最近更新 更多