技術實戰(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ù)格式進解析。
基于EIP的數(shù)據(jù)集成實戰(zhàn)
在談EIP前我們了解下其他兩個概念,SOA和ESB。
先簡單介紹一下SOA架構的示意圖,中間的單體服務就是SOA的部分,SOA最小的業(yè)務單元就是服務,服務內(nèi)有許多模塊。
微服務架構就是SOA的升級版,微服務將SOA服務內(nèi)的模塊做了拆分,顆粒度更細,降低了耦合度,即使某個服務出現(xiàn)問題,也不會影響其他服務的正常運行。
企業(yè)級的應用通常會有很多的SOA服務,各個服務的開發(fā)語言和協(xié)議可能也不一樣,服務間調(diào)用會有很高的成本,ESB很好的解決了這個問題。
ESB是服務的請求者和提供者之間的一個中間件,它將不同平臺的異構服務用管道的形式連接起來,轉(zhuǎn)換成消息流,再通過中介處理,最后將消息以適當?shù)男问睫D(zhuǎn)發(fā)到目的地。
SOA和ESB的理論基礎來自于哪兒呢?就是我們下面要講的EIP,EIP全名是企業(yè)集成模式。
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ù)流。
接下來我們講NIFI涉及到的幾個核心概念:
●FlowFile文件流 表示通過系統(tǒng)移動的每個對象,包含數(shù)據(jù)流的基本屬性
●Connection 連接器 負責不同處理器之間的連接,是數(shù)據(jù)的有界緩沖區(qū)
●Processor處理器 負責實際對數(shù)據(jù)流執(zhí)行工作
●Flow Controller流控制器 管理進程使用的線程及其分配
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)勢:
NIFI通用模板看這里!
雖然說NIFI內(nèi)置了很多的處理器,但是要挑選適合的處理器,將它們組裝起來,實現(xiàn)業(yè)務功能,還是需要花費點時間,因此我們做了一些通用的模板,大家只要修改一些配置信息,就能用。
下面給大家展示一下我們整合過的幾個模板示意圖:
當然,如果內(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
瀚碼技術以“數(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 高工鋰電——年會搶先看