技術實戰 | 基于EIP的數據集成實戰
EIP(Enterprise Integration Patterns)全名是企業集成模式,是各種MOM消息中間件和ESB的理論基礎。我們基于EIP的理論,利用數據拉取和分發工具——NIFI,總結了一系列實戰模板,快速便捷地對多種異構數據源和數據格式進解析。
基于EIP的數據集成實戰
在談EIP前我們了解下其他兩個概念,SOA和ESB。
先簡單介紹一下SOA架構的示意圖,中間的單體服務就是SOA的部分,SOA最小的業務單元就是服務,服務內有許多模塊。
微服務架構就是SOA的升級版,微服務將SOA服務內的模塊做了拆分,顆粒度更細,降低了耦合度,即使某個服務出現問題,也不會影響其他服務的正常運行。
企業級的應用通常會有很多的SOA服務,各個服務的開發語言和協議可能也不一樣,服務間調用會有很高的成本,ESB很好的解決了這個問題。
ESB是服務的請求者和提供者之間的一個中間件,它將不同平臺的異構服務用管道的形式連接起來,轉換成消息流,再通過中介處理,最后將消息以適當的形式轉發到目的地。
SOA和ESB的理論基礎來自于哪兒呢?就是我們下面要講的EIP,EIP全名是企業集成模式。
EIP框架圍繞消息集成和傳輸和轉換可能出現的場景做了整理歸納,包含了發送方,消息體、管道、路由(根據消息的特征確定發送到哪個接收方)、消息轉換,最后到接收方。參考EIP框架實現企業應用集成的產品有很多,NIFI就是其中一個。
什么是NIFI?
NIFI是一個數據拉取、數據處理和分發的工具,用于自動化管理系統間的數據流。
接下來我們講NIFI涉及到的幾個核心概念:
●FlowFile文件流 表示通過系統移動的每個對象,包含數據流的基本屬性
●Connection 連接器 負責不同處理器之間的連接,是數據的有界緩沖區
●Processor處理器 負責實際對數據流執行工作
●Flow Controller流控制器 管理進程使用的線程及其分配
P1處理器接入數據源,比如說從數據庫獲取數據,然后將每條數據轉換成FlowFile,FlowFile從P1處理器傳輸到P2處理器,需要一個管道,就是Connector。當然這是最簡單的示例,具體業務里P1和P2中間還有其他的處理器。
NIFI相比其他的產品應用更加廣泛,能解析多種異構數據源和數據格式,支持的主流數據庫有PostgreSQL、MySQL、SqlServer、Oracle,也支持Http請求、解析CSV文件、MQTT和KAFKA等數據格式。
可以總結為以下6大核心優勢:
NIFI通用模板看這里!
雖然說NIFI內置了很多的處理器,但是要挑選適合的處理器,將它們組裝起來,實現業務功能,還是需要花費點時間,因此我們做了一些通用的模板,大家只要修改一些配置信息,就能用。
下面給大家展示一下我們整合過的幾個模板示意圖:
當然,如果內置的處理器不能滿足業務需求,也可以創建自定義處理器。使用mvn archetype:generate命令創建nifi處理器模板工程,然后在OnTrigger方法中實現具體的業務邏輯,將打包出的nar包放到工程目錄的lib文件夾下,重啟NIFI后就可以了。同時NIFI也提供了單元測試的工具類TestRunner。
使用注意點
1、事先弄清需要同步增量數據還是全量數據,如果需要同步增量數據,采用了全量數據,就會導致大量的重復數據。
2、定時拉取需要設置時間,默認值0會一直運行,占用服務器內存
3、獲取CSV文件數據設置從單個節點獲取,否則會有重復數據
4、磁盤IO是NIFI的瓶頸,建議使用集群
5、服務器系統的配置不同吞吐量和延遲也有很大的不同
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
瀚碼技術以“數字賦能 智造價值”為使命,秉持“敏捷、賦能、統一、平臺”的理念,致力于成為客戶首選的數字化技術提供商。利用物聯網、大數據等先進技術,瀚碼技術構建了跨界融通的工業互聯網產業生態,助力企業實現數字化轉型。
經過多年行業深耕,瀚碼技術陸續推出了一系列場景化軟件系統,并形成兩大平臺型產品:OPLENLINK?企業級工業互聯網平臺和HARMONCODE?工業低代碼平臺。依托先進的數字化平臺軟件、經驗豐富的行業專家智庫,為客戶打造更易用的工業軟件產品。

提交
瀚碼資訊 | 華為加持,首個通過5G集成認證的工業物聯網邊緣計算網關你GET了嗎?
HARMON ECO-DAY | 手拉手,共贏未來!
【2021 Q4】Decoding Day | OPENLINK® BI V3.3 更新日志
【2021 Q4】Decoding Day | OPENLINK® Edge V3.5 更新啦!
瀚川:市場活動 | 12月21日 瀚碼技術 x 高工鋰電——年會搶先看