Nifi 关键特性 | 学习笔记

简介: 快速学习 Nifi 关键特性

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

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


Nifi 关键特性

内容介绍

一、特性

二、总结

一、特性

NIFI 的关键特性,主要分3部分:

1.流管理

(1)保证交付

流管理主要包含保证交付,NIFI 的核心理念是在很高的规模下,也必须要保证数据的交付送达,通过有效的使用 log和 content repository 的机制来进行实现,这两个机制一起被设计为具备很高并发率、速率,并且可以进行负载均衡的分布和运算,写实复制,以及能够发挥传统磁盘补血优势机制,保证能够交付送达的特性。

(2)数据缓冲 背压和压力释放

数据缓冲拥有背压和压力释放的特性,NIFI 支持缓冲所有排队的数据以及在队列达到指定的限制时,可以提供背压的能力,背压对象的预值和背压数据的大小预值。对象个数预值,对象大小的预值,通过两个预值来提供应对背压的情况,或者在数据达到了指定时间限制以后,例如已经失效了,可以老化,进而丢弃掉过旧数据的能力,不可能永远存住历史数据,如果无限制的保存历史数据是多余的,压力也很大。

(3)队列优先级

nifi 允许设置一个或多个的优先级方案机制,主要用来从队列中解锁数据,接收数据,例如接收数据的时候,采用先进先出还是先进后出,默认情况是先进先出,有时候可能会先提取最新的数据,这是后进先出,最大数据先出或者其他定制的方案。

(4)特殊的流质量,包括了延迟和吞吐量的机制,可能会在数据流的某一些节点上,数据很重要,不允许有丢失的情况,并且有时候,数据可能要求在几秒钟之内就要处理结束,传到下一节点,对于要求性能时性比较高的流数据,nifi可以做细粒度的配置。

2.易用性

(1)可视化流程

nifi 支持可视化的流程操作,数据流的处理逻辑可能会很复杂,例如数据仓库的建立的过程,统计、计算和分析的过程,有时候会很复杂,甚至可能需要各种各样的软件工具,如果能够可视化完整的流程,并且用可配置的方式来表达,就可以极大的帮助开发人员、用户降低数据流的复杂度,帮助确定哪些地方可以简化,可以优化,NIFI 可以实现数据流的可视化建立,而且是实时的,不是先设计再运行部署,修改设计好,再重新部署。如果对数据流进行了更改,更改就会立刻生效,不需要再进行重新部署等等重启操作,并且细粒度大和组件隔离,不需要为了进行某些特定的修改而停止整个流程,数据流或者数据流的组,对操作来说有很大帮助,对工作效率也有很大提升,降低了工作门槛。

(2)流模板

flowfile 往往是高度模式化的,虽然会有很多不同的方法来解决问题,但是能够共享最佳的实践模板会有很大的帮助,类似备份和恢复机制,有很好实践,就可以将它做成模板然后进行无缝迁移,应用到自己的系统流程当中。流程模板,允许设计人员构建和发布自己的流程设计,并且共享给其他人从中受益和服用。

(3)数据起源追踪

在对象流系统中运行的时候,例如输入输出转换,这一系列复杂的操作,NIFI 都会进行记录,并且提供查看数据的整个来源以及流转过程信息,查看故障、定位故障、解决故障,优化性能以及其他需要使用这个历史过程的时候,都可以查看数据的流转。

(4)可以记录和重放档,细粒度历史记录缓冲区,nifi 的 content repost,也是内容存储库,它主要充当历史数据的缓冲区,数据在内容存储库当中老化或者需要空间的时候,才会被删除掉,内容存储库以及数据起源追踪能力相结合,可以为数据生命周期中某特定的点,实现内容的查看,以及内容的下载和内容的重播功能。查看历史内容,内容下载备份,以及重播历史数据,来复现当时所想要的场景,在测试以及定位问题的时候,很有帮助。

3.灵活缩放模型

主要包含水平扩展的特性,放大和缩小的能力。

nifi 设计可以集群运转,使 nifi 拥有了横向扩展的能力,如果配置单个节点,并且单个节点是可以按照每秒处理,数百兆数据相应的集群,就可以每秒处理上 G 的数据,这也会带来一些问题,例如 NIFI 和不同集群节点之间负载平衡的能力以及故障转移的能力,如果集群的节点过度,可能会产生问题,一般用不了太多节点,但如果真的出现这种节点过于多的情况下,也可以采用消息队列的形式解决问题。

NIFI 可以很灵活的放大和缩小,从 Nifi 框架的角度来看,增加吞吐量,可以在配置的时候,在调度选项卡下,配置处理器并发的任务数量,配置的任务数线程数越多,并行执行的任务就越多,处理效率就越高,从而提高了吞吐量,另外可以将 nifi 缩小到占用空间很小的配置,可以使用 mininifi 来处理要求不高的任务,一般是因为硬件资源比较有限,配置不高,使用迷你 NIFI,占用的空间就会很小。


二、总结

流管理,易用性,灵活的缩放模型。对于流式管理,有一系列优化机制,包括保证交付,数据缓冲的背压和压力释放的机制,以及队列优先级机制,还有特殊的要求。易用性方面, NIFI 是可视化的处理流程,有流模板的机制,可以方便的备份和分享已经比较好的解决方案。数据起源跟踪的功能,可以方便进行数据的跟踪,问题的定位以及 BUG 和问题的解决。细粒度的历史记录,可以进行内容的下载查看,甚至是重新播放历史数据的流程。灵活的缩放模型,一共有两个,可以横向的进行集群扩展,可以让并发能力配置更强,也可以很方便的让它缩小,在硬件不好的服务器上,进行运行。

相关文章
|
存储 监控 Java
NiFi 监控2 | 学习笔记
快速学习 NiFi 监控2
316 0
NiFi 监控2  |  学习笔记
|
存储 安全 Java
【NiFi】(一)NiFi 简介及核心概念
【NiFi】(一)NiFi 简介及核心概念
2536 0
【NiFi】(一)NiFi 简介及核心概念
|
16天前
|
数据可视化 安全 大数据
NIFI是什么工具?优点是什么?
【10月更文挑战第21天】NIFI是什么工具?优点是什么?
34 1
|
6月前
|
消息中间件 存储 SQL
Flume【基础知识 01】简介 + 基本架构及核心概念 + 架构模式 + Agent内部原理 + 配置格式(一篇即可入门Flume)
【2月更文挑战第18天】Flume【基础知识 01】简介 + 基本架构及核心概念 + 架构模式 + Agent内部原理 + 配置格式(一篇即可入门Flume)
1754 0
|
存储 Java 调度
Nifi 的性能 | 学习笔记
快速学习 Nifi 的性能
381 0
|
存储 负载均衡 Java
Nifi 架构 | 学习笔记
快速学习 Nifi 架构
281 0
Nifi 架构  |  学习笔记
|
XML 数据格式 开发者
了解 Nifi 其他组件 | 学习笔记
快速学习了解 Nifi 其他组件
300 0
了解 Nifi 其他组件  |  学习笔记
|
监控 负载均衡 数据处理
NiFi 集群知识点 | 学习笔记
快速学习 NiFi 集群知识点
355 0
NiFi 集群知识点  |  学习笔记
|
存储 XML Linux
NIFI 集群知识点 | 学习笔记
快速学习 NIFI 集群知识点
283 0
NIFI 集群知识点  |  学习笔记
|
监控 Java 开发者
NiFi 监控1 | 学习笔记
快速学习 NiFi 监控1
163 0
NiFi 监控1  |  学习笔记
下一篇
无影云桌面