国产欧美另类视频第一页-国产视v频一区二区三区不卡视频-国产精品亚洲v无码播放-亚洲欧美三级另类

跨系統接口的服務鏈監控

SOA團隊 2020-03-16

由于所有跨系統的接口服務都通過ESB服務總線進行封裝代理后接入,因此理論上說從實際業務服務調用實例數據和日志中是可以反推出來端到端的業務流程的,也就是可以通過服務實例和服務鏈的監控來間接的監控跨系統的業務流轉是否正常。簡單來說,比如一個采購訂單,基于一個采購訂單號,我們實際上可以通過服務監控數據來分析到該訂單是否已經從采購系統導入到ERP,是否已經進行了報賬申請,是否已經進行了付款等,實際上這些信息從服務實例日志中都可以提取出來。

要完成這件事情,有兩個關鍵點要做,即首先要對服務鏈本身進行進行服務鏈流程建模,其次是能夠對采集的日志的輸入輸出中能夠抓取出結構化的關鍵業務字段信息。只要做到這兩點,我們就很容易實現可視化的跨系統服務鏈監控功能。

服務鏈流程建模的功能實現

在前面我們做ESB服務設計器的時候,已經剝離了原流程引擎中進行服務編排或可視化流程建模的能力。實際上這里的設計本身也就是一個多個服務編排設計的過程,將多個服務編排設計到一起。注意在這個過程中還需要允許有分支,也允許并行。服務鏈監控最終形成的也是一個完整的服務鏈監控樹。只是這個監控樹的形成是通過可視化的服務組合編排工具來實現的而已。

針對不同的跨系統業務監控,都需要針對不同場景設計不同的服務監控模型。比如現在設計一個采購訂單服務鏈監控模型,我們建設對該模型進行簡化,具體如下通過建模工具形成如下模型樹。

合同導入服務-》采購訂單導入服務-》采購接收服務-》報賬申請服務-》應付發票導入服務-》付款服務。

即在這些服務組合編排好后,我們需要維護對于每個服務對于的業務關鍵字提取字段,即可以根據XPath方式來說明是從XML結構里面哪里去提取關鍵的業務字段值,如采購訂單號。那么我們在查找實例的時候主要就是用這個來解析業務報文里面的內容進行匹配。一個服務本身運行涉及到成功和失敗,在流程實例查看的時候,最好方式是成功類服務和失敗類服務單獨進行顯示,以方便區分,同時如果該服務運行成功,未運行或運行失敗都能夠有明確的背景色分開展示。

注意,在上面這個服務鏈里面本身是存在1對多映射關系的。這種映射關系全部在點擊流程活動節點的時候再去顯示明細。對于兩個活動節點之間本身是1對1映射還是1對多,也可以在監控模板設置的時候進行維護。

業務日志采集和查詢

采用基于Solr進行業務關鍵字查詢和報文日志全文檢索。即我們不再需要對服務運行報文數據全部進行結構化數據,只需要對這些數據建立元數據索引信息,有了索引后Solr基本就可以快速的檢索和定位到具體的服務。

對于當前的服務日志,我們已經完成了將Blob結構的數據準實時的采集并提取索引信息,進入到Solr庫,實現了基于業務關鍵字的服務實例查詢能力,而原來我們只能基于服務實例號進行服務日志的查詢?;赟olr查詢速度相當快,基本都是10多毫秒就能快速的完成服務日志的檢索能力。在Solr實現了索引數據的創建,基于業務關鍵字的查詢能力后,接下來分析如何和服務鏈監控進行整合。

舉例來說,對于采購訂單服務鏈監控,進入該功能后我們直接輸入采購訂單號,然后基于訂單號我們做如下事情:

1. 首先找到采購訂單服務鏈監控流程模板,然后基于流程模板知道涉及哪些服務。

2. 找到流程模板中維護的Xpath檢索項。

3. 基于Xpath檢索項找的信息,拼裝Solr查詢關鍵字,然后進行Solr查詢查找到對應服務日志記錄。

4. 將服務日志記錄提取出來對應到流程實例具體的活動節點上面。形成關聯,并區分成功失敗,當前狀態。

5. 完成流程實例圖的顯示。

最終完成的服務鏈監控效果圖參考如下:

對于服務鏈監控,按照前面的思路完全可以做到通過服務的監控和關聯,來逆向實現跨系統交互流程的監控,即從服務鏈為主的監控轉變到跨系統流程交互的監控。其本質仍然是跨系統間的接口服務集成和協同。

整體思路,仍然是先進行跨系統交互流程建模,如下就是一個最簡單的模型:

我們完全可以采用流程設計和建模工具來完成上圖的流程模型,當然如果采用類似支持BPMN標準的流程建模工具還可以進一步完成類似含職能帶的跨系統交互流程圖。

在這個跨系統交互流程圖中,銜接各個業務系統的仍然是相互之間的接口和服務,我們仍然是按照一個核心單據為基本元素來進行設計,比如項目編號,合同編號,采購訂單編號等。以這個編號來完成整個跨系統端到端流程的分析。

在建模的過程中,兩個系統間的連接線就是關鍵的服務,但是由于不是直接的服務間的連接,因此仍然需要建立服務之間的關聯性。比如我們整體跨系統監控都是以采購訂單號來進行跟蹤的話,我們就需要定義采購訂單這個元素在每一個接口服務中對應的XML-Element的位置,以確保這些服務之間本身能夠關聯起來。

整體我們看到實現的思路和服務鏈監控基本相同。

仍然是先根據業務關鍵字查詢功能,精確查詢出相關的服務實例數據。然后將服務實例數據映射到流程圖上面,形成流程圖實例。對于已經成功運行的服務標注為綠色,對于接口調用失敗的服務標注為紅色,對于還沒有執行到的服務標注為灰色。

同時更加有意義的事情是,我們完全可以用動畫效果模擬這個跨系統接口交互流程。即能夠動態的看到各個接口被觸發和調用的前后順序。同時看到前后接口觸發的大致時間間隔信息。通過這種實現能夠很方便我們實現圍繞核心業務對象的端到端流程監控能力。

當然這是一種變通的端到端流程監控實現思路,核心是先進行流程建模,然后再通過業務關鍵字檢索功能動態搜索匹配的服務日志調用數據,再對流程圖進行實例化解析。由于采用了Solr全文檢索能力,這個比我們完全自頂向下的來進行端到端流程監控實現更加高效。

從以服務為核心的監控轉到以跨系統交互活動為核心,以實現了服務鏈監控到端到端流程監控的轉變。

返回上頁