推广 热搜: 会展中心  培训  电机  西门子  工控  服务机器人  阀门  变频器  氢气,加氢站  PLC 

技术实战 | 基于EIP的数据集成实战

   日期:2021-11-19     来源:工控之家网    作者:工控之家    评论:0    
核心提示:EIP(Enterprise Integration Patterns)全名是企业集成模式,是各种MOM消息中间件和ESB的理论基础。我们基于EIP的理论,利用数据拉取和分发工具——NIFI,总结了一系列实战模板,快速便捷地对多种异构数据源

EIP(Enterprise Integration Patterns)全名是企业集成模式,是各种MOM消息中间件和ESB的理论基础。我们基于EIP的理论,利用数据拉取和分发工具——NIFI,总结了一系列实战模板,快速便捷地对多种异构数据源和数据格式进解析。

image.png

基于EIP的数据集成实战

在谈EIP前我们了解下其他两个概念,SOA和ESB。

先简单介绍一下SOA架构的示意图,中间的单体服务就是SOA的部分,SOA最小的业务单元就是服务,服务内有许多模块。

image.png

微服务架构就是SOA的升级版,微服务将SOA服务内的模块做了拆分,颗粒度更细,降低了耦合度,即使某个服务出现问题,也不会影响其他服务的正常运行。

企业级的应用通常会有很多的SOA服务,各个服务的开发语言和协议可能也不一样,服务间调用会有很高的成本,ESB很好的解决了这个问题。

ESB是服务的请求者和提供者之间的一个中间件,它将不同平台的异构服务用管道的形式连接起来,转换成消息流,再通过中介处理,最后将消息以适当的形式转发到目的地。

image.png

SOA和ESB的理论基础来自于哪儿呢?就是我们下面要讲的EIP,EIP全名是企业集成模式。

image.png

EIP框架围绕消息集成和传输和转换可能出现的场景做了整理归纳,包含了发送方,消息体、管道、路由(根据消息的特征确定发送到哪个接收方)、消息转换,最后到接收方。参考EIP框架实现企业应用集成的产品有很多,NIFI就是其中一个。

什么是NIFI?

NIFI是一个数据拉取、数据处理和分发的工具,用于自动化管理系统间的数据流。

image.png

接下来我们讲NIFI涉及到的几个核心概念:

●FlowFile文件流 表示通过系统移动的每个对象,包含数据流的基本属性

●Connection 连接器 负责不同处理器之间的连接,是数据的有界缓冲区

●Processor处理器 负责实际对数据流执行工作

●Flow Controller流控制器 管理进程使用的线程及其分配

image.png

P1处理器接入数据源,比如说从数据库获取数据,然后将每条数据转换成FlowFile,FlowFile从P1处理器传输到P2处理器,需要一个管道,就是Connector。当然这是最简单的示例,具体业务里P1和P2中间还有其他的处理器。

NIFI相比其他的产品应用更加广泛,能解析多种异构数据源和数据格式,支持的主流数据库有PostgreSQL、MySQL、SqlServer、Oracle,也支持Http请求、解析CSV文件、MQTT和KAFKA等数据格式。

可以总结为以下6大核心优势:

image.png

NIFI通用模板看这里!

虽然说NIFI内置了很多的处理器,但是要挑选适合的处理器,将它们组装起来,实现业务功能,还是需要花费点时间,因此我们做了一些通用的模板,大家只要修改一些配置信息,就能用。

下面给大家展示一下我们整合过的几个模板示意图:

image.png

image.png

image.png

当然,如果内置的处理器不能满足业务需求,也可以创建自定义处理器。使用mvn archetype:generate命令创建nifi处理器模板工程,然后在OnTrigger方法中实现具体的业务逻辑,将打包出的nar包放到工程目录的lib文件夹下,重启NIFI后就可以了。同时NIFI也提供了单元测试的工具类TestRunner。

使用注意点

1、事先弄清需要同步增量数据还是全量数据,如果需要同步增量数据,采用了全量数据,就会导致大量的重复数据。

2、定时拉取需要设置时间,默认值0会一直运行,占用服务器内存

3、获取CSV文件数据设置从单个节点获取,否则会有重复数据

4、磁盘IO是NIFI的瓶颈,建议使用集群

5、服务器系统的配置不同吞吐量和延迟也有很大的不同

6、需要测试所用服务器的吞吐量

文章参考链接

 
标签: 技术实战
打赏
 
更多>同类环保新闻
0相关评论

Powered By DESTOON