Nifi 核心概念 | 学习笔记

简介: 快速学习 Nifi 核心概念

开发者学堂课程【NiFi 知识精讲与项目实战(第一阶段)Nifi 核心概念】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/705/detail/12507


Nifi 核心概念

内容介绍

一、核心概念

二、总结


一、核心概念

Nifi 的设计概念与基于流式编程的 fbp 思想是密切相关的,fbp 指的是常见的流式编程。

1.NIFI 和流式编程的映射关系以及核心组件的概念

NiFi 术语

FBP Term

描述

FlowEile

信息包

lnformationPacket

FlowEile 表示在系统中移动的每个对象,对于每个 FlowFile,NIEI 都会记录它一个属性键值对和0个或多个字节内容(FlowFile 有attribute 和 content)。

FlowFile

Processor

黑盒

Black BoX

实际上是处理器起主要作用。在eip 术语中,处理器就是不同系统间的数据路由,数据转换或者数据中介的组合。处理器可以访问给定FlowFile 的属性及其内容。处理器可以对给定工作单元中的零或多个流文件进行操作,并提交该工作或回滚该工作。

Connection

缓冲区

BoundedBuffer

Connections 用来连接处理器。它们充当队列并允许各种进程以不同的速率进行交互。这些队列可以动态地对进行优先级排序,并且可以在负载上设置上限,从而启用背压。

Flow

Controller

调度器 scheduler

流控制器维护流程如何连接,并管理和分配所有流程使用的线程。流控制器充当代理,促进处理器之间流文件的交换

ProcessGroup

分支网络 subnet

进程组里是一组特定的流程和连接,可以通过输入端口接收数据并通过输出端口发送数据,这样我们在进程组里简单地组合组件,就可以得到一个全新的组件(Process Group)。

(1)flowfile,flowfile 主要是表示在系统当中移动的每一个对象,对于每一个对象来说,Nifi 都会记录下属性键值以及0个或多个字节内容。 File 既有属性,又有内容,是2个主要组成部分,对应了流式编程中的信息包。

(2)Flow file processor, processor 就是处理器的意思。实际上是 Nifi 当中的核心组件。在 EIP 术语中,处理器就是不同系统间的数据路由、数据转换或者数据中介的组合。处理器可以访问给定 Flow file 的属性及其内容。处理器可以对给定工作单元中的零或多个流文件进行操作。并提交该工作或回滚该工作。表示 Flow file 文件当中的内容可以通过 processor 处理器进行逻辑运算、路由或转换中介判断等操作。Flow file processor 是 Nifi 的核心,在流式编程当中对应的概念叫黑盒。

(3)connection,connection 的作用是用来连接处理器,也是 processor,多个 processor 之间通过 connection 连接进行串联的,connection 充当队列的角色,并且允许各个进程以不同的速率,进行交互,队列可以动态的进行优先级的排序,并且可以在负载均衡上设置上限,从而启用背压机制。connection 既充当了连接的对象,又承担了队列的角色,有双重功能。在流式编程当中,所对应的组件是缓冲区。

(4)Flow file controlerl 组件,流控制器,主要是维护流程如何进行衔接,并且管理和分配所有流程使用的线程,流式控制器,充当代理角色,促进处理器之间的文件进行交换。对应流式编程当中的组件叫做 schedule,调度器。

(5)Process group,处理器组。进程组是由一组特定的流程和连接所组成的,可以通过输入端口接受数据,并且通过输出端口去发送数据。组也可以和组之间进行数据通信,在不同的进程组中,也可以进行简单的组合,这样就可以得到全新功能的组件。组合连接以后又形成了新的大组。组可以有集联的组合关系。以上是 Nifi 的核心组件的概念。

设计模式类似于分阶段的概念,通过组把不同的操作分成不同的阶段,帮助 Nifi 成为有效、容易构建、功能强大,可扩展性很强的数据流平台。

2.Nifi 的好处

(1)有助于处理器可视化创建和管理

(2)本质上是异步的,允许很高的吞吐量和足够大的自然缓冲

(3)Nifi 提供了高并发的模型,开发人员不必担心并发的复杂性,只需要通过界面的操作拖拽,以及配置就可以实现出高并发处理、多现成的处理。

(4)NIFI 它促进了内聚和松散藕合组件的开发,可以在其他环境中重复使用,并且方便进行单元测试。

以上是在开发中经常使用的方式。

(5)NIFI 的资源受限链接使得背压和压力释放等关键功能自然和直观,可以在流程当中配置链接,不同的链接可以设置不同背压的值,也可以进行压力释放的配置,可以避免程序因为压力过大而导致假死现象,以上是高并发系统开发时必须需要的机制,叫做熔断保护机制。

(6)错误处理变得像基本逻辑一样自然,而不是粗粒度的全部捕获错误信息,可以精确的、快速的捕捉到所产生的错误的根本原因,并且展示给使用者,便于发现问题、定位问题、解决问题

(7)数据进入和退出系统的点,以及数据如何进行流转,都很容易跟踪和理解以及查看,方便进行全流程数据的跟踪、查看以及定位,更方便使用和开发以及单元测试。


二、总结

1.主要内容是 NIFI 核心组件概念,一共5个核心的组件:

(1)Flow file。Flow file 指的是文件对象包含的内容,主要是属性和内容,也就是 attribute、content;

(2)flowfile processor。处理器主要用来处理 Flow file,对 Flow file 进行逻辑的判断或路由以及转换等操作,处理器负责这个核心的处理业务工作;

(3)connection,翻译成中文是连接处理器。连接处理器,主要负责两个业务,一是连接不同的 processor,二是充当队列的角色,connection 中可以保存数据;

(4)flow controller,流控制器,主要充当代理、调度器的角色,促进处理器之间文件的交换;

(5)processor group,处理器组,处理器组也可以叫做进程组,组包含了一组的 processor 以及 connection,并且组和组之间也可以进行连接和传输数据,组成新的大组。

以上是 Nifi 的核心组件,和基础的流式编程相同。

2.NIFI 优点

(1)可视化管理,便于操作,不需要掌握代码;

(2)吞吐量大,自然缓冲;

(3)高并发,对于高并发操作很简单,不需要进行复杂的处理,会自动进行优化;

(4)内聚和松耦合开发模式,在 Nifi 当中,可以方便的进行支持;

(5)垄断机制,支持背压设置和压力释放机制,可以用来保护系统;

(6)错误处理直观精确;

(7)数据流动,可以方便的进行查看和更多数据流动的整体流程,方便理解和跟踪。

相关文章
|
前端开发 Java Unix
【NiFi】(二)三分钟搞定 NiFi 安装与简单使用!
【NiFi】(二)三分钟搞定 NiFi 安装与简单使用!
2997 0
【NiFi】(二)三分钟搞定 NiFi 安装与简单使用!
|
3月前
|
存储 运维 关系型数据库
深入理解MySQL的MVCC(多版本并发控制)实现原理
总结起来,MVVC技术使得MySQL能够有效地支持高并发环境中复杂交互要求; 然而合理配置及运维管理仍然关键确保系统长期稳健运转.
304 16
|
监控 Go 数据处理
iLogtail 进化论:重塑可观测采集的技术边界
iLogtail 作为一款开创性的轻量级日志采集器,历经 13 载风雨,始终致力于高效地从多元化的数据源中萃取、处理可观测信息,并无缝传输至阿里云日志服务或各类日志分析平台。今年,适逢 iLogtail 开源两周年的里程碑时刻,我们将回顾 iLogtail 的技术演进之路,领略其不断突破边界、引领可观测采集未来的创新力量。
710 112
|
9月前
|
存储 人工智能 NoSQL
通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制
MongoDB Atlas 的向量搜索功能为语义搜索和 RAG 提供了一个高效的数据库管理平台。在这个全新的应用场景下,Atlas 的向量检索能力支持开发者实现高效的知识检索和增强型生成应用,使其在智能客服、知识问答、个性化推荐等场景中大放异彩。结合生成式模型的 RAG 应用,MongoDB Atlas 提供了从数据存储到智能生成的完整解决方案,展现出其在现代应用中的巨大潜力。希望本文能够帮助大家更好地理解 MongoDB Atlas 的语义搜索功能和 RAG 的实际应用。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点
通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制
|
存储 分布式数据库 数据库
Hbase学习二:Hbase数据特点和架构特点
Hbase学习二:Hbase数据特点和架构特点
475 0
|
安全 容器 iOS开发
|
关系型数据库 MySQL
解决MySQL insert出现Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘xxx‘ at row 1
解决MySQL insert出现Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘xxx‘ at row 1
1176 2
|
应用服务中间件 Go 数据安全/隐私保护
[grpc]使用mTLS加密认证
[grpc]使用mTLS加密认证
221 0
|
设计模式 前端开发 测试技术
软件质量的守门人——接口测试
接口作为API,是后端预定义的函数,用于系统间通信和数据交换。接口测试验证不同组件间的交互,确保其准确、可靠。常见应用场景包括集成测试、版本迭代测试、性能测试、安全测试和错误场景测试。随着服务端复杂性的增加,传统测试方法面临挑战,因此引入分层测试(如马丁福勒的测试金字塔模型)和自动化测试,以降低成本并提高效率。接口测试成为确保后端服务质量的关键,学习接口测试可从理解其价值、协议、工具使用及Mock测试等方面逐步进阶。
|
存储 运维 算法
PolarDB-X 一致性共识协议 (X-Paxos)
近几年NewSQL和云原生数据库的不断兴起,极大地推动了关系数据库和一致性协议的结合,PolarDB-X也是在这样的背景下应运而生。
2289 0
PolarDB-X 一致性共识协议 (X-Paxos)