连接与关系 | 学习笔记

简介: 快速学习连接与关系

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

课程地址:https://developer.aliyun.com/learning/course/706/detail/12542


连接与关系


内容介绍:

一、细节

二、设置

三、负载均衡功能

四、集群连接摘要

五、优先级

六、更改配置和上下文菜单选项

七、弯曲连接

八、操作


NiFi 的连接与关系,NiFi 的连接和关系之前的操作当中,使用了很多次,应该都比较熟悉,但并没有深入的去了解特性。在创建处理器以后,要做的是把不同的处理器连接在一起,形成一个数据流。进行连接是通过处理器上面的这个箭头。

11.png

拖动这个键就可以进行连接。


一、细节  

每一个链接都需要一个关系来进行路由,这个关系,如果上游处理器只有一个关系默认会是选中的状态,

2.png

否则需要手动的去勾选,但是也会出现一种情况,同一个关系,可能会被路由到多个不同链接上面去,就会出现,这个关系里面所涉及到 flow file 会复制多份,发送到不同的连接当中,并不是一个负载均衡的消费,会去复制。  


二、设置  

setting 设置界面,在这个设置界面当中,

3.png

可以设置连接的名称,但是也可以不填写名称,是 connection 关系的名称,还有一个是 flow file,可以在这个设置界面去设置一个到期时间,到期的意思是数据流从创建开始一直超过,一直等待某一个特定的时间以后,还没有被这个下游节点消费。这个时候就会被 NiFi 从的队列当中删除掉,  

如上图,默认的是零,零的意思是永不过期,如果把零改成了其的时间,比如改成了一个小时,到一个小时以后队列当中的数据,已经存在了一个小时,还没有被消费,就会被 NiFi 给删除掉,这是队列当中,可以设置的 flow file 到期,另外一个,背压是指 flow file 在队列当中存在限制。主要包含两个方面,一个方面,是 flow fell 数量的限制,另外一方面,是 flow fell 在队列当中,所保存的大小限制,这两个值是可以配置的,如下图两个配置项,第一个配置项指的是 flow 票在队列当中所存在的这个数最大上限的这个数量。右边的这个值,flowfile 在这个队列当中所存在的最大的这个文件大小,  

4.png

两个数值设置以后,就可以在工作面板当中,看到进度条,

5.png

比如设置的是1万和一个 G,当这个值小于60%的时候,也就是6000兆时,它会显示绿色,也就是0%-60%,如果当它的数据量,达到了6000到8500之间时,如果设置是10000,就是6000,6000条数据的时候,也就是61%到85的时候,会显示成黄色,当超过8600条的时候,也就是8600到100%的时候,就会显示红色,这个时候,就可以很明显的来提示 queue 队列当中的数据,快要超过的预支了,在右侧,显示的是 flow file 要在队列当中已经存在的数据的大小,数据大小的百分比。所展示的颜色和刚才所说的,这个数据量是一样的,  

可以把鼠标移动到这个进度条上面,移动到这个进度条上面以后,就会显示一些具体的信息,

6.png

比如82%,通过这样的信息来进行展示,当的队列完全填满以后,这个链接就会显示一个高亮的红色,

7.png

刚才还提到 flow file 到期也有专门的图标,就是时钟的图标,也就是这里面的数据,是会进行到期删除处理的,如果不设置,默认是零,就不会有这个图标。  


三、负载均衡功能  

负载均衡的功能:

第一个选项是不负载均衡,这是一个默认值,之前在使用的时候,选用的是循环,也就是使用轮循的方式,来负责负载均衡。 第二个是按照的属性去进行负载均衡,按照某一个之外的, 第三个是单节点,就是指定就由哪个节点来运行,来计算 FlowFile 队列的数据,

另外 nifi 会在重新启动的时候,保存集群当中的所有节点信息,这样当重新启动以后,nifi 集群就不用再重新去分配数据了,会等待所有节点都启动以后,再去进行处理,如果集群打算把某一个节点删掉,必须要手动的,把删掉以后再进行重启这样话,集群也是会把节点信息记录下来.  

负载均衡压缩方式,有三种,之前采用的是压缩属性和内容这种方式。默认的是不进行压缩,

负载均衡指示器,如下图图标,

当正在分配数据的时候,会是如下图的图标,

8.png

分配完数据以后,就会显示成如下图的图标,就是分配完成了,

9.png


四、集群连接摘要  

集群还有一个连接的摘要信息可以去查看,查看集群可以选择某一个连接选项卡,点击选项卡里面的 connection details,这样的一个按钮就可以进行查看了,这个面板在之前 summary 面板当中可以进行查看,

10.png

是可以通过查看以后可以看到这些数据,到底都在哪一个集群的哪一个节点上分配,每一个节点又分别占用了多少多少的数据。

111.png

比如上图当中这个两个节点,一个是431个是4443这个节点,队列里面有124个数据,占用队列的是1%。然后,这个大小是12%,就可以知道,负载均衡的情况,目前来看,从这个图,现在这个负载均衡的情况是非常的平均。  


五、优先级  

还可以设置优先级,主要指的是 NiFi,在进行队列输入的时候去消费的一个顺序,这个顺序是在的连接选项卡设置当中去进行的。  

配置项:

1、首先第一个的意思是会首先处理第一个到达的,最早到达的优先处理,First in first out,先入先出,

2、第二个 news flow file first,是最新的数据后来的数据先进行处理,跟之前的那个正相反,

3、第三个是 oldest flow file first,是根据数据流当中 flow file 创建的时间,如果创建时间越早,就越先去处理它。是默认的选项,排序优先级选项,

4、第四个是 priority at BAT,通过这个属性,Priority 属性来进行优先级的划分,如何来使用,非常的灵活,但是要求有一个条件,必须要为 flow file 设置 priority 的属性值,在这个属性值就可以去进行优先级的排序,它的值越小优先级就越高,最低优先级的优先处理,也就是这个值越小,就是1最先执行,2其次,3再往后就按照这样顺序去进行执行,

(1)在使用这种方式的时候,必须要使用 update alphabet 在的 flow file 当中去添加属性,叫做 priority。如果没有这个属性,就没有办法去进行优先级的排序;

(2)如果有这样的属性,值还是最小的会优先执行,属性值在 flow file 当中都没有,只在某一个或者某几个 flow file 当中出现,就会优先处理有 priority 的 flow file,没有就往后排,

(3)priority 属性值,可以是数字也可以是字母,最好是用数字1到9,如果用字母,就是 a 到 Z,按照这样的顺序来排序,

(4)但是有一种情况,如果 priority 内容不能转化为 long 结构数字,就会使用字符的形式去进行匹配,比如99-100,可以转化为 long 类型。所以99会优先执行,但是如果使用a-99和a-100的时候,a-100就会优先执行,因为用这种字符的方式去匹配,到零这个字符时,0-9要小,就会把它优先执行,判断不出来100 比99更大。 所以最灵活的是 pretty 这种方式来进行排序,  

注意:如果配置有负载均衡策略时,除了本地队列以外,每一个集群都有一个队列,这时的排序是按照每一个节点,自己独立的顺序去执行,不会考虑整个集群的顺序,所以如果要做全局的排序,这个时候队列就不能使用负载均衡的策略。  


六、更改配置和上下文菜单选项  

可以去更改的配置以及上下文的这个菜单,这个要更改必须要把相关的处理器,连接的处理器都停止以后才能去修改,否则是没有办法进行的,

12.png

而下图是这个队列,右键后所出现的菜单。

13.png


七、弯曲连接

14.png

弯曲连接主要是外形上图表展示的功能,如何让队列,线能够通过弯曲的方式来进行展示,只需要在连接的线上面双击就可以,双击以后就会出现新的折点,还可以对这个折点以后再去双击某一个线,就会出现一个新的折点,可以不断的进行弯曲,如果要想把这个折点消除掉,可以在弯曲的点上面,双击就可以消除这个弯曲,变成直线。


八、操作  

演示连接与关系的使用,回到 fNiFi 处理器面板,首先启动第一个节点去造数据,然后启动第二个节点去更新,更改的数据内容,再启动第三个节点,让数据替换到的属性当中去,这时候可以看到队列的数据,都已经处理完在这,这个数据的流向已经完成,

15.png

接下来,把第二个 replace tax 里面的配置项,把值变更,给删掉。在下一个处理器当中,是通过正则表达式来进行匹配的成直线。如果删除掉以后,正则表达式就会匹配失败,当匹配失败以后,先停止,停止以后可以看到,现在这个队列当中一共有6个数据,

16.png

编辑把 replace text 里面的属性,把B给删除掉,这个时候,再去运行数据时,在 replaced 里面正则表达式它就会匹配失败,因为缺少后面数据,

17.png

测试,运行 start 启动,启动之前是六个数据,数据并没有继续增加,前面的这些处理器所处理数据都在增加,现在是12个,刚才是11个,它的数据在处理器当中,设置的是当没有匹配成功,会回到自身里面,也就是没有处理成功的,就不再向外进行流转了。

18.png

为了更好的观察数据流向,可以再添加一个新的处理器,叫了叫做 log attribute 的处理器,

19.png

把 Extract text 处理器连接过来,选中 unmatched

20.png

这时 unmatched 就不再回到自身而是发送到 log aspect 组件当中,重新启动处理器。matched 没有增加但是unmatched 队列增加了5个数据,在不断增加,

这时如果重新修改配置,重新改为 C.D,处理器 extract 就会成功的匹配到之前的 flow file,这时,unmatched 就不会再增加,matched 数据就会增多,

启动,matched 增加从1变成7,而 unmatched 一直是2,数据没有任何的变化。

设置 flow file 到期功能,比如还是这个选项,这个链接,点击编辑,可以在 setting 界面去设置到期时间,比如在这里面原来是0,就是没有过期时间,改为10,会发现又多了一个按钮,又多了一个图标,

21.png

也就是超过十秒钟数据还没有被消费就会被清洗掉, 还可以测试如何来设置背压,如下图,背压数据有两个,都设置为0意思是被压现在是没有任何限制的。  

22.png

数据的值,是可以在 flow file 当中进行设置,但是有个默认值,而这个默认值,也需要去进行配置的。在nifi.properties 配置文件当中进行配置,有两个选项,一旦把这两个选项设置出来值以后,就会有默认值,现在没有设置所以没有默认值,比如设置为10,另一个改成10兆,

23.png

意思是队列积压的数据,如果超过10个,或者说大小超过了10兆,就会不再会接收新的数据,点击 replace 就是发现,这个链接和其链接有点不太一样,多了两个条状的图形,如下图,

24.png

把鼠标放上去,就会展示现在背压的情况,现在0%就是里面没有任何的数据。  

负载均衡,如下图图标,

25.png

可以去更改弯曲链接,让链接变成折线的,双击线,比如想要在哪进行弯曲就双击哪块的线,双击以后,会出现黄色的点,然后拖动这个点以后发现变成弯曲的了。

26.png

如果还想再加一个弯曲,继续进行双击,就会又多了一个曲线,可以拖动这个曲线进行弯曲。

如果想把某一个弯曲去掉,可以点击想要去掉的弯曲,进行双击,这时就变成直的,再点双击就又出来一个曲线。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
5月前
|
JSON 文件存储 数据安全/隐私保护
微博超话自动签到神器, 微博自动签到神器app,贴吧微博签到脚本工具助手
核心模块包含超话列表获取和签到功能‌2使用配置文件存储cookies避免硬编码‌1
|
12天前
|
人工智能 安全 数据可视化
2025年大型企业BI工具选型指南:10款主流产品深度解析
2025年大型企业BI选型需聚焦生态适配与场景落地。本指南深度解析10款主流工具,涵盖瓴羊Quick BI、Tableau、Power BI等,覆盖制造、零售、金融等行业需求,助力企业实现数据驱动决策。
|
SQL 监控 Oracle
Oracle 数据库报错:ORA-12592问题排查过程
Oracle 数据库报错:ORA-12592问题排查过程
4683 0
|
存储 监控 Java
Java多线程优化:提高线程池性能的技巧与实践
Java多线程优化:提高线程池性能的技巧与实践
546 1
|
NoSQL 编译器 程序员
【C语言】揭秘GCC:从平凡到卓越的编译艺术,一场代码与效率的激情碰撞,探索那些不为人知的秘密武器,让你的程序瞬间提速百倍!
【8月更文挑战第20天】GCC,GNU Compiler Collection,是GNU项目中的开源编译器集合,支持C、C++等多种语言。作为C语言程序员的重要工具,GCC具备跨平台性、高度可配置性及丰富的优化选项等特点。通过简单示例,如编译“Hello, GCC!”程序 (`gcc -o hello hello.c`),展示了GCC的基础用法及不同优化级别(`-O0`, `-O1`, `-O3`)对性能的影响。GCC还支持生成调试信息(`-g`),便于使用GDB等工具进行调试。尽管有如Microsoft Visual C++、Clang等竞品,GCC仍因其灵活性和强大的功能被广泛采用。
406 1
|
API 数据库 网络架构
深入浅出:使用Python Flask实现RESTful API
【10月更文挑战第7天】在数字化时代,掌握如何高效构建和部署RESTful API是后端开发者的必备技能。本文将引导你了解如何使用Python Flask框架快速打造一个简单而强大的RESTful服务。从基础环境搭建到API设计原则,再到实际代码示例,我们将一步步揭开Flask框架的神秘面纱,让你轻松上手,并能够自信地处理更复杂的项目。
|
安全 Java 应用服务中间件
如何在 Spring Boot 3.3 中实现请求 IP 白名单拦截功能
【8月更文挑战第30天】在构建Web应用时,确保应用的安全性是至关重要的。其中,对访问者的IP地址进行限制是一种常见的安全措施,特别是通过实施IP白名单策略,可以只允许特定的IP地址或IP段访问应用,从而有效防止未授权的访问。在Spring Boot 3.3中,我们可以通过多种方式实现这一功能,下面将详细介绍几种实用的方法。
1093 1
|
安全 Java
Java 并发编程详解:Lock 接口及其实现 ReentrantLock
Java 并发编程详解:Lock 接口及其实现 ReentrantLock
302 1