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 和问题的解决。细粒度的历史记录,可以进行内容的下载查看,甚至是重新播放历史数据的流程。灵活的缩放模型,一共有两个,可以横向的进行集群扩展,可以让并发能力配置更强,也可以很方便的让它缩小,在硬件不好的服务器上,进行运行。

相关文章
|
定位技术 开发工具 Android开发
Leaflet开发入门
Leaflet开发入门
601 0
|
开发框架 监控 安全
webshell检测方法归纳
webshell检测方法归纳
1057 0
|
时序数据库
客户端连接InfluxDB
客户端连接InfluxDB
843 0
|
10月前
|
机器学习/深度学习 编解码 人工智能
《深度揭秘:生成对抗网络如何重塑遥感图像分析精度》
生成对抗网络(GAN)由生成器和判别器组成,通过对抗训练生成逼真图像。在遥感图像分析中,GAN可扩充数据集、提升超分辨率、去噪增强及提高语义分割精度,有效应对高分辨率、多光谱等挑战,显著提升分类和检测任务的准确性。研究案例表明,GAN使分类精度提高15%以上,并实现4倍分辨率提升。未来,GAN有望进一步优化算法和架构,结合其他AI技术,推动遥感图像分析的创新与突破。
237 2
|
安全 API 调度
异步编程中你需要知道的 指令、响应,同步原语 和 使用时注意事项
【5月更文挑战第1天】`asyncio`提供了多种同步原语,如Lock、Event、Condition、Semaphore和BoundedSemaphore。Lock用于基本同步,Event用于标志状态切换,Condition允许在满足特定条件时唤醒协程,Semaphore控制资源访问,BoundedSemaphore防止计数超过预设值。
316 7
|
存储 数据采集 分布式计算
阿里巴巴数据仓库实践:从离线到实时的一体化探索
阿里巴巴的数据仓库实践从离线到实时的一体化探索,不仅为企业自身业务的快速发展提供了有力支撑,也为行业树立了标杆。通过不断优化技术架构、提升数据处理能力、加强数据治理和安全管理,阿里巴巴的实时数仓将为企业创造更大的价值,推动数字化转型的深入发展。未来,随着技术的不断进步和业务的持续拓展,阿里巴巴的实时数仓实践将展现出更加广阔的应用前景和发展空间。
|
Web App开发 IDE 测试技术
实战练习:用airtest-selenium脚本爬取百度热搜标题
实战练习:用airtest-selenium脚本爬取百度热搜标题
488 0
|
存储 消息中间件 数据挖掘
数据仓库的深度探索与实时数仓应用案例解析
大数据技术的发展,使得数据仓库能够支持大量和复杂数据类型(如文本、图像、视频、音频等)。数据湖作为一种新的数据存储架构,强调原始数据的全面保留和灵活访问,与数据仓库形成互补,共同支持企业的数据分析需求。
|
存储 缓存 NoSQL
Redis实现延迟任务的几种方案
Redis实现延迟任务的几种方案
|
机器学习/深度学习 人工智能 自然语言处理
经典的机器学习模型及神经网络
当谈到机器学习模型时,我们通常会指的是一系列用于从数据中学习模式并做出预测的算法。这些模型可以应用在各种领域,如图像识别、自然语言处理、推荐系统等。下面我将详细介绍一些常见的机器学习模型,包括传统的统计模型和深度学习模型。
711 0