工控網(wǎng)首頁(yè)
>

新聞中心

>

業(yè)界動(dòng)態(tài)

>

技術(shù)實(shí)戰(zhàn) | 基于EIP的數(shù)據(jù)集成實(shí)戰(zhàn)

技術(shù)實(shí)戰(zhàn) | 基于EIP的數(shù)據(jù)集成實(shí)戰(zhàn)

EIP(Enterprise Integration Patterns)全名是企業(yè)集成模式,是各種MOM消息中間件和ESB的理論基礎(chǔ)。我們基于EIP的理論,利用數(shù)據(jù)拉取和分發(fā)工具——NIFI,總結(jié)了一系列實(shí)戰(zhàn)模板,快速便捷地對(duì)多種異構(gòu)數(shù)據(jù)源和數(shù)據(jù)格式進(jìn)解析。


image.png


基于EIP的數(shù)據(jù)集成實(shí)戰(zhàn)


在談EIP前我們了解下其他兩個(gè)概念,SOA和ESB。


先簡(jiǎn)單介紹一下SOA架構(gòu)的示意圖,中間的單體服務(wù)就是SOA的部分,SOA最小的業(yè)務(wù)單元就是服務(wù),服務(wù)內(nèi)有許多模塊。


image.png


微服務(wù)架構(gòu)就是SOA的升級(jí)版,微服務(wù)將SOA服務(wù)內(nèi)的模塊做了拆分,顆粒度更細(xì),降低了耦合度,即使某個(gè)服務(wù)出現(xiàn)問(wèn)題,也不會(huì)影響其他服務(wù)的正常運(yùn)行。


企業(yè)級(jí)的應(yīng)用通常會(huì)有很多的SOA服務(wù),各個(gè)服務(wù)的開(kāi)發(fā)語(yǔ)言和協(xié)議可能也不一樣,服務(wù)間調(diào)用會(huì)有很高的成本,ESB很好的解決了這個(gè)問(wèn)題。


ESB是服務(wù)的請(qǐng)求者和提供者之間的一個(gè)中間件,它將不同平臺(tái)的異構(gòu)服務(wù)用管道的形式連接起來(lái),轉(zhuǎn)換成消息流,再通過(guò)中介處理,最后將消息以適當(dāng)?shù)男问睫D(zhuǎn)發(fā)到目的地。


image.png


SOA和ESB的理論基礎(chǔ)來(lái)自于哪兒呢?就是我們下面要講的EIP,EIP全名是企業(yè)集成模式。


image.png


EIP框架圍繞消息集成和傳輸和轉(zhuǎn)換可能出現(xiàn)的場(chǎng)景做了整理歸納,包含了發(fā)送方,消息體、管道、路由(根據(jù)消息的特征確定發(fā)送到哪個(gè)接收方)、消息轉(zhuǎn)換,最后到接收方。參考EIP框架實(shí)現(xiàn)企業(yè)應(yīng)用集成的產(chǎn)品有很多,NIFI就是其中一個(gè)。


什么是NIFI?


NIFI是一個(gè)數(shù)據(jù)拉取、數(shù)據(jù)處理和分發(fā)的工具,用于自動(dòng)化管理系統(tǒng)間的數(shù)據(jù)流。


image.png


接下來(lái)我們講NIFI涉及到的幾個(gè)核心概念:


●FlowFile文件流 表示通過(guò)系統(tǒng)移動(dòng)的每個(gè)對(duì)象,包含數(shù)據(jù)流的基本屬性


●Connection 連接器 負(fù)責(zé)不同處理器之間的連接,是數(shù)據(jù)的有界緩沖區(qū)


●Processor處理器 負(fù)責(zé)實(shí)際對(duì)數(shù)據(jù)流執(zhí)行工作


●Flow Controller流控制器 管理進(jìn)程使用的線程及其分配


image.png


P1處理器接入數(shù)據(jù)源,比如說(shuō)從數(shù)據(jù)庫(kù)獲取數(shù)據(jù),然后將每條數(shù)據(jù)轉(zhuǎn)換成FlowFile,F(xiàn)lowFile從P1處理器傳輸?shù)絇2處理器,需要一個(gè)管道,就是Connector。當(dāng)然這是最簡(jiǎn)單的示例,具體業(yè)務(wù)里P1和P2中間還有其他的處理器。


NIFI相比其他的產(chǎn)品應(yīng)用更加廣泛,能解析多種異構(gòu)數(shù)據(jù)源和數(shù)據(jù)格式,支持的主流數(shù)據(jù)庫(kù)有PostgreSQL、MySQL、SqlServer、Oracle,也支持Http請(qǐng)求、解析CSV文件、MQTT和KAFKA等數(shù)據(jù)格式。


可以總結(jié)為以下6大核心優(yōu)勢(shì):


image.png


NIFI通用模板看這里!


雖然說(shuō)NIFI內(nèi)置了很多的處理器,但是要挑選適合的處理器,將它們組裝起來(lái),實(shí)現(xiàn)業(yè)務(wù)功能,還是需要花費(fèi)點(diǎn)時(shí)間,因此我們做了一些通用的模板,大家只要修改一些配置信息,就能用。


下面給大家展示一下我們整合過(guò)的幾個(gè)模板示意圖:


image.png

image.png

image.png


當(dāng)然,如果內(nèi)置的處理器不能滿足業(yè)務(wù)需求,也可以創(chuàng)建自定義處理器。使用mvn archetype:generate命令創(chuàng)建nifi處理器模板工程,然后在OnTrigger方法中實(shí)現(xiàn)具體的業(yè)務(wù)邏輯,將打包出的nar包放到工程目錄的lib文件夾下,重啟NIFI后就可以了。同時(shí)NIFI也提供了單元測(cè)試的工具類TestRunner。


使用注意點(diǎn)


1、事先弄清需要同步增量數(shù)據(jù)還是全量數(shù)據(jù),如果需要同步增量數(shù)據(jù),采用了全量數(shù)據(jù),就會(huì)導(dǎo)致大量的重復(fù)數(shù)據(jù)。


2、定時(shí)拉取需要設(shè)置時(shí)間,默認(rèn)值0會(huì)一直運(yùn)行,占用服務(wù)器內(nèi)存


3、獲取CSV文件數(shù)據(jù)設(shè)置從單個(gè)節(jié)點(diǎn)獲取,否則會(huì)有重復(fù)數(shù)據(jù)


4、磁盤IO是NIFI的瓶頸,建議使用集群


5、服務(wù)器系統(tǒng)的配置不同吞吐量和延遲也有很大的不同


6、需要測(cè)試所用服務(wù)器的吞吐量


文章參考鏈接??:


https://www.cnblogs.com/muzhongjiang/p/13153165.html


https://help.syncfusion.com/data-integration/how-to/create-a-custom-processor


https://baijiahao.baidu.com/s?id=1695284379841105746&wfr=spider&for=pc


https://blog.csdn.net/u010777507/article/details/10509428


image.png


瀚碼技術(shù)以“數(shù)字賦能 智造價(jià)值”為使命,秉持“敏捷、賦能、統(tǒng)一、平臺(tái)”的理念,致力于成為客戶首選的數(shù)字化技術(shù)提供商。利用物聯(lián)網(wǎng)大數(shù)據(jù)等先進(jìn)技術(shù),瀚碼技術(shù)構(gòu)建了跨界融通的工業(yè)互聯(lián)網(wǎng)產(chǎn)業(yè)生態(tài),助力企業(yè)實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型。


經(jīng)過(guò)多年行業(yè)深耕,瀚碼技術(shù)陸續(xù)推出了一系列場(chǎng)景化軟件系統(tǒng),并形成兩大平臺(tái)型產(chǎn)品:OPLENLINK?企業(yè)級(jí)工業(yè)互聯(lián)網(wǎng)平臺(tái)和HARMONCODE?工業(yè)低代碼平臺(tái)。依托先進(jìn)的數(shù)字化平臺(tái)軟件、經(jīng)驗(yàn)豐富的行業(yè)專家智庫(kù),為客戶打造更易用的工業(yè)軟件產(chǎn)品。

審核編輯(
王妍
)
投訴建議

提交

查看更多評(píng)論
其他資訊

查看更多

瀚碼資訊 | 華為加持,首個(gè)通過(guò)5G集成認(rèn)證的工業(yè)物聯(lián)網(wǎng)邊緣計(jì)算網(wǎng)關(guān)你GET了嗎?

HARMON ECO-DAY | 手拉手,共贏未來(lái)!

【2021 Q4】Decoding Day | OPENLINK® BI V3.3 更新日志

【2021 Q4】Decoding Day | OPENLINK® Edge V3.5 更新啦!

瀚川:市場(chǎng)活動(dòng) | 12月21日 瀚碼技術(shù) x 高工鋰電——年會(huì)搶先看