NiFi 这个东西到底有哪些应用场景?这些功能特性是如何在使用过程中发挥作用的?这些功能特性的底层实现是如何的?

一、概述

2017 年的 2 月初到写就这篇文章的 5 月 11 日,藕断丝连地跟 NiFi 打了近 3 个月的交道。从最初的屁事儿不懂,到现在的略知皮毛,期间的过程可谓十分“有趣”。

2015年7月20日,Apache 基金会通过其博客宣布Apache NiFi顺利孵化完成称为Apache的顶级项目之一。

由于 NiFi 开源时间较短,再加之国内对 NiFi 应用不多。中文的相关文章多停留在对 NiFi 的泛泛而谈,没有系统且深入的对 NiFi 进行介绍。唯一能够参考的也只有官网和 google 了。因此,学习之路还是蛮吃力的。

本人将这一艰辛的学习之路,整理成文,供各位参考。如有错误,烦请批评指正。

二、NiFi 功能

Apache NiFi 是一个易于使用、功能强大而且可靠的数据处理和分发系统。Apache NiFi 是为数据流设计。它支持高度可配置的指示图的数据路由、转换和系统中介逻辑。

来自 Apache NiFi 详细介绍/OSChina 的介绍,内容翻译自 NiFi 官网

关键特性包括:

  • 基于web的用户界面
    无缝体验设计、控制和监视
  • 高度可配置的
    数据丢失容错和保证交付
    低延迟和高吞吐量
    动态优先级
    流可以在运行时修改
    背压 Back presure
  • 数据来源
    从始至终跟踪数据流
  • 为扩展设计
    构建自己数据处理器
    支持快速开发和有效的测试
  • 安全
    SSL,SSH,HTTPS加密内容,等等……
    可插拔的基于角色的验证/授权