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
【NiFi】(一)NiFi 简介及核心概念
【NiFi】(一)NiFi 简介及核心概念
2536 0
【NiFi】(一)NiFi 简介及核心概念
|
6月前
|
消息中间件 存储 SQL
Flume【基础知识 01】简介 + 基本架构及核心概念 + 架构模式 + Agent内部原理 + 配置格式(一篇即可入门Flume)
【2月更文挑战第18天】Flume【基础知识 01】简介 + 基本架构及核心概念 + 架构模式 + Agent内部原理 + 配置格式(一篇即可入门Flume)
1754 0
|
消息中间件 分布式计算 搜索推荐
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
453 0
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
|
消息中间件 存储 监控
深入浅出:理解Kafka的核心概念与架构
深入浅出:理解Kafka的核心概念与架构
624 0
|
消息中间件 存储 Kafka
Kafka 实战开篇-讲解架构模型、基础概念以及集群搭建(下)
Kafka 实战开篇-讲解架构模型、基础概念以及集群搭建(下)
180 0
|
消息中间件 NoSQL 中间件
Kafka 实战开篇-讲解架构模型、基础概念以及集群搭建(上)
Kafka 实战开篇-讲解架构模型、基础概念以及集群搭建
332 0
|
消息中间件 存储 缓存
Storm核心组件、编程模型
Storm核心组件、编程模型
210 0
|
存储 负载均衡 Java
Nifi 架构 | 学习笔记
快速学习 Nifi 架构
281 0
Nifi 架构  |  学习笔记
|
监控 负载均衡 数据处理
NiFi 集群知识点 | 学习笔记
快速学习 NiFi 集群知识点
355 0
NiFi 集群知识点  |  学习笔记
|
XML 数据格式 开发者
了解 Nifi 其他组件 | 学习笔记
快速学习了解 Nifi 其他组件
300 0
了解 Nifi 其他组件  |  学习笔记
下一篇
无影云桌面