NiFi架构
一、NiFi核心概念
NiFi的基本设计理念是基于数据流的编程Flow-Based Programming(FBP),应用是由处理器、连接器组成的网络。数据进入一个节点,由该节点对数据进行处理,根据不同的处理结果将数据路由到后续的其他节点进行处理。这是NiFi的流程比较容易可视化的一个原因。以下是NiFi的一些概念:
NiFi术语 | 描述 |
---|---|
FlowFile | FlowFile 是系统间传输的对象,FlowFile有attribute和content,attribute属性是与数据关联的key-value键值对,content内容是数据本身相关的字节流。 |
FlowFile Processor | Processor 是实际操作数据的模块。Processor负责创建、接收、发送、转换、路由、拆分、合并、处理FlowFile。 Processor可以访问零到多个FlowFile的属性和内容,可以提交或回退提交的任务。 |
Connection | Connection用来连接Processor,每个Connection充当一个队列从而实现不同的Processor可以以不同的速率交互数据。这个队列可以动态调节优先级,也可以设置负载上限,实现反压机制。 Connection通常和Processor的一个或者多个Relationship连接,这就允许根据处理器的不同数据处理结果来路由数据。当一个FlowFile被发送到某个Relationship时,它就被加到了对应的COnnect队列里。 |
Flow Controllers | 负责维护Processors之间的调度、管理所有流程使用的线程及其分配。 |
Process Group | 处理器组,一堆Processors及其对应的Connection组成了一个Process Group,这个处理器组通过输入端口接收数据,通过输出端口发送数据。 Process Group可以组合其他的组件来创建新的组合。 |
参照上述表格,简单来讲FlowFile是在各个节点间流动的数据;FlowFile Processor 是数据的处理模块;Connection是各个处理模块间的一个队列;Flow Controllers是复杂流程的调度;Process Group一些相关连的Processor可以封装到一个Process Group中,不同组用来表示不同流程的层次关系。
这种设计模式带来了很多好处,帮助NiFi成为构建强大的可扩展数据流高效的平台,包括:
- 适用于可视化的创建和管理Processor。
- 本质上是异步的,即使在处理和流量波动时也允许非常高的吞吐和自然缓冲。
- 提供高并发的模型,让开发人员不用担心如何实现复杂的并发。
- 帮助高度聚合和松散耦合组件的开发,让这些组件可以在其他环境复用,并帮助单元测试。
- 资源受限的connection使得背压和压力释放等关键功能非常自然和直观。
- 错误处理做的非常好,而不是粗粒度的一把抓。
- 数据进入和退出系统以及如何流过的点很容易理解和轻松跟踪。
二、NiFi架构
-
- Win11安装VMware Workstation Pro,Centos,Xshell,Xftp图文教程(Linux学习必备)
-
编程 | 2023-02-24 21:36
-
- 全球首个云渗透测试认证专家课程发布!腾讯安全领衔编制
-
编程 | 2023-02-21 12:51
-
- JavaWeb day5 Tomcat配置及idea创建Maven-Tomcat项目
-
编程 | 2023-02-21 12:47
-
- C语言实例|使用C程序优雅地杀掉其它程序进程
-
编程 | 2023-02-21 00:15
-
- 腾讯云服务器快速部署ChilloutMix
-
编程 | 2023-02-21 00:08
-
- vscode远程开发使用SSH远程连接服务器的方法「内网穿透」
-
编程 | 2023-02-20 21:46
-
- springboot使用mybatis开启事务回滚
-
编程 | 2023-02-20 21:42
-
- git可视化工具Sourcetree使用全攻略(git冲突解决)
-
编程 | 2023-02-20 21:36
-
- Win11安装VMware Workstation Pro,Centos,Xshell,Xftp图文教程(Linux学习必备)
-
编程 | 2023-02-20 21:32
-
- 领英群发消息方法技巧
-
编程 | 2023-02-20 18:12
网友评论