工控網(wǎng)首頁
>

新聞中心

>

業(yè)界動態(tài)

>

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

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

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


image.png


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


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


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


image.png


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


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


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


image.png


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


image.png


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


什么是NIFI?


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


image.png


接下來我們講NIFI涉及到的幾個核心概念:


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


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


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


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


image.png


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


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


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


image.png


NIFI通用模板看這里!


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


下面給大家展示一下我們整合過的幾個模板示意圖:


image.png

image.png

image.png


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


使用注意點


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


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


3、獲取CSV文件數(shù)據(jù)設置從單個節(jié)點獲取,否則會有重復數(shù)據(jù)


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


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


6、需要測試所用服務器的吞吐量


文章參考鏈接??:


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


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

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

提交

查看更多評論
其他資訊

查看更多

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

HARMON ECO-DAY | 手拉手,共贏未來!

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

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

瀚川:市場活動 | 12月21日 瀚碼技術 x 高工鋰電——年會搶先看