聲明
- 本文的內容僅限於技術探討,不能作爲指導生產環境的素材;
- 鼓勵讀者購買紅帽培訓獲得更多系統性的培訓。
一、以API爲中心的敏捷集成
傳統的IT構建模式,通常使用瀑布式開發、底層基礎架構使用虛擬化。
新的IT構建模式,以API爲中心,通過微服務、CI/CD的方式,實現了業務的敏捷性。
在新的IT構建模式總,集成是很關鍵的一點。
傳統IT構建方式的集成是通過ESB來實現。這對於微服務、移動、雲的新業務場景是不是很匹配。
我們需要從面向系統轉向面向服務的敏捷集成。
紅帽的敏捷集成技術,主要是基於Fuse和AMQ來實現。
JBoss Fuse 是一款輕量級集成平臺,通過有效減少連接各類應用、服務、流程和設備的難度,爲企業提供功能全面、高效的業務解決方案。JBoss Fuse 包含了廣受歡迎、功能完善的 Apache Camel項目,該技術項目以提供備受用戶青睞的企業集成模式而著稱。利用高效集成模式和超過 150 種即用型連接器,JBoss Fuse 可在企業範圍內支持,包括企業內部、移動設備或雲端的應用和服務在內的廣
泛集成
二、Fuse的技術架構
Fuse的三個模式:
- 傳統基於JVM單機
- 基於Openshift
- Fuse Online
Fuse的幾類connector:
基於Openshift部署Fuse架構:
Fuse on Openshift內部架構:
各個組件的功能:
Fuse默認情況下嵌入PostgreSQL和AMQ
Fuse默認數據庫:PostgreSQL
- 提供必要的持久數據存儲
- 適用於需要數據管理的用戶場景
- 沒有數據要求的用戶可以忽略
- 外部數據庫可以通過打包爲技術擴展和預打包SQL組件的JDBC驅動程序進行集成。示例數據庫:MariaDB,MySQL,IBM DB2,Microsoft SQL Server
默認消息代理:Red Hat AMQ
- 提供可靠的異步消息傳遞支持
- 地址需要在系統之間進行通信的用例
- 沒有可靠消息傳遞要求的用戶可以忽略
三、幾種Connector
封裝連接器:
Connector:用於創建一個或多個連接的模板
Packaged connector:Fuse Online提供開箱即用的連接器
Connector的配置:
connector的屬性:
Action:
Shapeless vs. Shaped Connectors
- Shapeless content: Data type defined at configuration time
- Shaped content: Data type not defined at configuration time, only discovered at runtime
- Shapeless connector: Handles shapeless content
- Shaped connector: Handles shaped content
Connector類型:
SFTP連接器
- 支持上傳和下載
- 自動重新連接處理
- 無形連接器
FTP連接器
- 支持上傳和下載
- 自動重新連接處理
- 無形連接器
HTTPS連接器
- 低級HTTPS請求
- 支持針對任何HTTPS端點發出請求
- 支持定期輪詢端點
- 無形連接器
HTTP連接器
- 低級HTTP請求
- 支持針對任何HTTP端點發出請求
- 支持定期輪詢端點
- 無形連接器
Twitter連接器
- 搜索提及你的推文
- 搜索包含您指定的文本的推文
- 通過訪問/密鑰保護
- 支持異形數據
Salesforce連接器
- 支持創建,獲取,更新,刪除Salesforce記錄
- 使用記錄ID或外部ID
- 支持接收對記錄的修改通知
- 異形連接器
- 從正在訪問的Salesforce對象中檢索數據模式
- 通過訪問/密鑰保護
Slack Connector
- 支持在Slack協作軟件上向用戶或頻道發佈消息
- 支持異形數據
數據庫連接器
- 類似於JDBC的SQL語句語法
- 支持定期和事件驅動的SQL調用
- SQL動態生成的數據類型
- 不防彈
- 反饋意見
- 基線SQL驗證,以防止粗心錯誤
- 內置驅動程序支持:
- PostgreSQL的
- MySQL的
- 支持添加自己的驅動程序
AMQP連接器
- 與xPaaS AMQ代理圖像兼容,AMQ Online
- 用於消息傳遞方案的Fuse Online環境中包含Cold AMQ實例
- 支持訂閱發佈,請求 - 響應類型
- 無形連接器
- 支持SSL / TLS加密,基本身份驗證
AMQ連接器
- 與xPaaS AMQ代理圖像兼容
- 用於消息傳遞方案的Fuse Online環境中包含Cold AMQ實例
- 支持訂閱發佈,請求 - 響應類型
- 無形連接器
- 支持SSL / TLS加密,基本身份驗證
MQTT連接器
- 與xPaaS AMQbroker images兼容
- 用於消息傳遞方案的Fuse Online環境中包含Cold AMQ實例
- 支持訂閱發佈,請求 - 響應類型
- 無形連接器
- 支持SSL / TLS加密,基本身份驗證
Dropbox連接器
- 支持文件上傳和下載
- 通過訪問/密鑰保護訪問
- 無形連接器
AWS S3連接器
- 發送和接收位於AWS S3存儲桶中的文件
- 支持獲取,輪詢,複製
- 通過訪問/密鑰保護
- 無形連接器
四、實驗展現:Fuse On Openshift 將微服務數據集成到平面文件
在Openshift上部署了一個項目fuse-ignite
進入項目以後,先查看fuse相關的pod:
除此之外,在這個項目中還搭建了一個微服務的測試程序:
我們通過路由登錄Fuse:
接下來,我們打開微服務的地址,顯示的是微服務的API:
接下來的實驗,我們驗證如下內容。
首先有一個微服務,叫Coolstore,它是一個公司的在線業務。訪問Coolstore API的產品信息,將會以文件的方式被實時儲存到遠端的文件服務器上,可以被ftp下載。
隨着Coolstore微服務接到訪問請求,平面文件將不斷刷新微服務提供的最新數據。 這種數據質量保證使Coolstore產品的經銷商確信他們可以隨時從遠程文件託管服務器下載正確的數據。 Coolstore產品的經銷商將此產品目錄數據用作其業務運營的一部分。
創建與微服務的HTTP連接
在“配置連接”屏幕上,提供上一個實驗中標識的Coolstore產品目錄微服務的URL。
創建完畢
創建 Web Hosting Account
使用遠程文件託管服務器作爲託管Fuse Online集成的目標端點(平面文件)的環境。 在本節中我們使用免費的網絡託管服務提供商(Infinity Free)註冊賬戶。
記錄新帳戶的用戶名和密碼,因爲Fuse Online集成創建過程需要此信息。
註冊成功後的登錄界面:
緊接着,創建account:
查看account信息:
查看ftp的信息:
control pannel:
創建與Web Hosting Service Provider的FTP連接
創建從HTTP連接到FTP連接的集成
在“選擇開始連接”屏幕上,選擇coolstore-product-catalog-microservice連接。
- On the Choose an Action screen, select Periodic invoke URL.
- 在“屬性”屏幕上,爲字段分配以下值:
- 網址路徑:/ products
- HTTP方法:GET
- 期限:5秒
coolstore-product-catalog-microservice連接現在正式成爲集成中的起始連接。
在“選擇完成連接”屏幕上,單擊“主機 - 服務器連接”圖標。
在“選擇操作”屏幕上,選擇“上載”。
配置屬性:
- File name expression:
product-catalog.txt
- FTP Directory:
/htdocs
截至到現在,hosting-server連接現在是集成的一部分。
給集成起一個名字,然後點擊Punlish:
過一會,集成成功:
測試微服務到文件集成
在Fuse Online控制檯的左側面板中,單擊“集成”。
選擇微服務到文件集成。
驗證微服務到文件集成是否處於活動狀態。
在單獨的Web瀏覽器窗口中,使用先前URL訪問Coolstore產品目錄微服務。
測試/products API操作。
請注意JSON格式的響應,顯示在Web瀏覽器窗口中。
我們可以看到,格式的響應是JSON,我們能確定列出的各個產品及其屬性。
"itemId" : "165613", "name" : "Solid Performance Polo", "desc" : "Moisture-wicking, antimicrobial 100% polyester design wicks for life of garment. No-curl, rib-knit collar; special collar band maintains crisp fold; three-button placket with dyed-to-match buttons; hemmed sleeves; even bottom with side vents; Import. Embroidery. Red Pepper.", "price" : 17.8 }, {
驗證數據內容:
使用FTP客戶端或基於Web的控制檯(如果可用),登錄並導航到Web主機服務帳戶的根目錄。
導航到/ htdocs子目錄。
找到product-catalog.txt文件並將其下載到本地PC。
在本地PC上找到product-catalog.txt文件,然後使用您喜歡的文本編輯器打開它。
使用微服務的Swagger用戶界面,將product-catalog.txt文件的內容與Coolstore產品目錄微服務的/products API操作測試的響應進行比較。
與瀏覽器訪問API的內容是一樣的:
在Fuse Online控制檯的Integration Summary屏幕上,瀏覽Activity和Metrics選項卡:
測試數據傳輸
使用FTP客戶端從遠程Web主機和本地PC中刪除product-catalog.txt文件。
大約一分鐘後,列出/ htdocs子目錄的內容。
過一會刷新,product-catalog.txt文件再度出現:
我們再度對比txt和API獲取的內容,是相同的。
這驗證了微服務到文件集成實現了實時數據同步的目標,以便Coolstore產品的經銷商使用。
接下來,我們可以分析應用的API:
監控集成中的Camel路由
接下來,分析構建微服務到文件集成的Camel路由的統計信息。
由於Fuse Online集成的基礎技術是Apache Camel路由,因此訪問嵌入在每個集成中的Hawtio控制檯非常有用,以便監控Camel路由和機上交換消息。
從OpenShift Container Platform Web控制檯,從左側面板中選擇Overview。
單擊Microservice to File 旁邊的pod圖標
每個Fuse Online集成都在其自己的OpenShift pod中進行容器化。 訪問每個集成的pod日誌有助於診斷有關使用集成的狀態和問題。
單擊Open Java Console鏈接:
這將啓動Hawtio控制檯,該控制檯監視構成集成結構的Apache Camel路由的活動和性能統計信息。
瀏覽控制檯並記下屬於Microservice to File集成的Camel路由的各種統計信息。
在Hawtio控制檯上選擇“屬性”選項卡:
請注意機上交換次數,增量處理時間,上次處理時間和最短處理時間。
選擇“跟蹤”選項卡,然後單擊“開始跟蹤”以在顯示的屏幕上激活跟蹤:
觀察跟蹤統計信息和機上交換活動。
Import和 Export展示
在本節中,我們將備份集成,然後導入並重新測試它。
從Fuse Online控制檯,從左側面板中選擇Integrations。
選擇微服務到文件集成。
單擊Fuse Online控制檯右上角的“導出”按鈕。
保存存檔文件。
解壓縮存檔文件。
分析從歸檔文件中提取的JSON文件的內容。
model.json
model-info.json
然後將文件進行導入:
導入成功後,版本自動進行了更新: