连接与关系 | 学习笔记

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 快速学习连接与关系

开发者学堂课程【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

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

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

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
数据库
主题域、概念、逻辑、物理四种模型有什么区别与联系?
主题域、概念、逻辑、物理四种模型有什么区别与联系?
|
6月前
|
开发框架 .NET C#
浅谈c和c++和c#之间的关系
浅谈c和c++和c#之间的关系
80 0
|
存储 JavaScript
02-TsVSJs之间的区别
02-TsVSJs之间的区别
62 0
|
SQL 算法 网络协议
一图了解,网络7层协议之间的关系
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群
|
前端开发 JavaScript
【组件封装】基于neo4jD3封装关系图、关联图谱
【组件封装】基于neo4jD3封装关系图、关联图谱
【组件封装】基于neo4jD3封装关系图、关联图谱
|
SQL 大数据 开发者
连接操作_连接类型_inner | 学习笔记
快速学习连接操作_连接类型_inner
连接操作_连接类型_inner | 学习笔记
|
负载均衡 数据处理 开发者
连接与关系总结 | 学习笔记
快速学习连接与关系总结
|
存储 Java 数据库连接
Hibernte的多对多映射(十二)
Hibernte的多对多映射(十二)
Hibernte的多对多映射(十二)
类和类之间的关系(2)
类和类之间的关系(2)
135 0
类和类之间的关系(2)