NIFI的核心理念是,即使在非常大的规模下,也必须保证交付。这是通过有效地使用Write-Ahead Log和content repository来实现的。它们一起被设计成具备允许非常高的事务速率、有效的负载分布、写时复制和发挥传统磁盘读/写的优势。
NiFi支持所有排队数据的缓冲以及当这些队列达到指定限制时提供背压的能力,或者指定过期时间,当数据达到指定期限时丢弃数据的能力
NiFi允许设置一个或多个优先级方案,用于如何从队列中检索数据。默认情况是先进先出,但有时应该首先提取最新的数据(后进先出)、最大的数据先出或其他定制方案。可以为每一个connection配置队列的优先级。
经常有一些数据是非常重要的不能够丢失,以及需要进行低延迟处理的。NiFi能够为这些数据流提供质量保障服务。
数据流的处理逻辑和过程可能会非常复杂。能够可视化这些流程并以可视的方式来表达它们可以极大地帮助用户降低数据流的复杂度,并确定哪些地方需要简化。NiFi可以实现数据流的可视化建立,而且是实时的。并不是“设计、部署”,它更像泥塑。如果对数据流进行了更改,更改就会立即生效,并且这些更改是细粒度的和组件隔离的。用户不需要为了进行某些特定修改而停止整个流程或流程组。
由于数据流是高度面向模式的,并且在解决一个问题时会有多种不同的方式,能够共享一些好的通用处理模板将对用户会有很大的帮助。模板功能允许用户构建、发布设计模板,并共享给其他人。
NiFi自动记录、索引对于数据流的每个操作日志,并可以把可用的跟踪数据作为对象在系统中传输。这些信息能够在系统故障诊断、优化等其他场景中发挥重要作用。
NiFi的content repository被设计成历史滚动缓冲区的角色。数据仅仅在超时或者空间不足时被从content repository中删除。此项功能与data provenance(数据跟踪)功能一起,可以提供一项非常有用的基础功能,即用户能够对中间过程的内容进行下载和回放。
NiFi可以通过双向SSL进行数据加密。并且可以允许在发送与接收端使用共享秘钥,及其他机制对数据流进行加密与解密。
NiFi允许双向SSL认证可以控制用户的登录权限(例如:只读权限、数据流管理者、系统管理员)。如果用户在flow中输入敏感信息(如密码),则会立即加密服务器端,即使是加密形式也不会再暴露在客户端。
指定数据流的权限适用于每个组件,允许管理员用户具有细粒度的访问控制。这意味着每个NiFi集群都能够处理一个或多个组织的要求。与隔离方式相比,多租户授权支持数据流管理的自助服务模型,允许每个团队或组织在完全了解流的其余部分的情况下管理流,而无法访问流。
NiFi可以通过将许多节点聚集在一起以集群的方式实现横向扩展。如果单节点被配置为每秒处理数百MB的数据,则集群方式可以达到每秒处理GB级别。
NiFi还可以非常灵活地扩展和缩小。从NiFi框架的角度来看,如果要增加吞吐,可以在配置时增加"Scheduling"选项卡下processor的并发任务数。这允许更多进程同时执行,从而提供更高的吞吐。 另一方面,您可以完美地将NiFi缩小到适合在边缘设备上运行,因为硬件资源有限,所需的占用空间很小。这种情况下可以使用MiNiFi。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。