国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

對微服務編排引擎和應用場景的再思考

開發 前端
如果看我前面的文章大家會注意到,在談低代碼開發平臺,談中臺支撐的上層應用構建,談Serverless無服務器架構的時候,都共同談到一個關鍵能力即:微服務編排。

 在底層共性技術服務和中臺業務服務能力具備后,上層應用可以根據可重用的服務快速的構建的,但是不可能所有場景都簡單的簡單調用一個API接口服務就能夠實現。當存在一定業務規則需要處理的時候,往往都涉及到調用多個API接口服務,中間還涉及到基礎的邏輯處理,判斷分支往往才能夠完成。

[[415958]]

如果讓前端應用開發來處理這種事情,又變成了需要大量編寫腳本代碼,而且存在共性領域服務邏輯對外泄露的問題。

服務編排實際上就是對基礎的業務處理流程,步驟,規則邏輯進行封裝,然后提供一個封裝后的組合服務或領域服務API接口能力給前端應用開發。這個和傳統SOA架構里面談到的通過BPEL來進行SOA服務編排思路完全一致。

當前微服務編排引擎來源

 

對微服務編排引擎和應用場景的再思考

 

對于開源的微服務編排引擎,最早大家比較熟悉的是Netfix Conductor,我在前面也專門寫過文章分析和說明,但是這個開源版本本身更多的是面向開發人員使用,很難做到前端的可視化靈活配置,而且也沒有可視化設計能力,只有編排完成后的可視化監控。

從當前主流的一些微服務編排引擎來看,主要包括如下幾類發展演進。

其一是從傳統的工作流引擎或BPM引擎積累開始做微服務編排引擎,比如當前開源的Zeebe,其開發團隊即來源于知名的Activiti工作流和BPM引擎。

 

對微服務編排引擎和應用場景的再思考

 

其二是傳統的ESB服務總線上層,對于ESB總線本身就有輕量服務編排功能,因此從ESB總線來發展微服務編排引擎。

 

對微服務編排引擎和應用場景的再思考

 

其三是基于分布式任務調度系統,自動化事件事物觸發編排發展出來的微服務編排引擎,要明白微服務編排最終核心仍然是各個活動或任務的處理。類似當前在物聯網領域應用廣泛的Node-Red編排引擎屬于這種方式。

如何理解微服務編排場景?

當我重新思考這個問題的時候,進一步將編排場景進行分類理解。

首先第一類就是簡單的服務組合,服務拆分,數據裁剪,數據映射等,這些內容可以通過服務編排來解決,比如輸入一個供應商編碼,同時調用兩個API接口服務,一個是查詢供應商基本信息,一個是查詢供應商的訂單明細列表信息。在調用返回后將結果整合為一個Json輸出給調用方。

對于這類場景實際就是對應到傳統ESB輕量服務編排能力,并不涉及到復雜的業務規則,業務邏輯處理,也不涉及到類似BPEL自動化業務流的處理等。

其次是基于業務處理流程的多個服務編排處理,這個場景和傳統SOA架構里面的BPEL很類似,就是要完成一個業務功能,你會發現本身就需要調用多個接口才能夠完成,而且這些API接口調用本身有先后關系,有調用邏輯和分支判斷,上游API接口服務的輸出往往會變成下游API服務的輸入,形成核心的串行邏輯結構。因此你需要通過一個編排功能將多個服務編排在一起,最終暴露一個服務。

對于這類場景一個典型就是一個前端功能實現,當完成相關書籍錄入后,點擊一個按鈕觸發事件,傳統代碼開發方法一定是在按鈕觸發事件方法中編寫具體的代碼實現邏輯,這個邏輯本身也涉及到調用多個API接口服務,當然也存在分支判斷邏輯等。

而新的低代碼開發或Serverless無服務器化下,我們更加希望點擊代碼只需要調用一個編排完成的組合服務能力即可。前端開發人員并不需要知道內部多個API服務編排組合的規則邏輯。那么這個場景下就需要先通過微服務編排引擎形成一個組合服務API,然后再暴露給前端應用使用。

我們最近做了什么事?

最近在實現微服務編排能力的時候,前期也進行了大量的選型,最早的計劃是整體從零開始,基于已有的圖形化設計器的基礎來做服務編排引擎。

但是分析完成后整體從零開始做仍然難度不小,不僅僅是API服務本身的組裝,拆分,規則邏輯處理,更加重要的是需要底層有一個完整的任務調度引擎或事件處理引擎。對于消費方系統來說看到的是一個組合服務API,但是其內部本身是多個服務組裝,組合完成的,內部已經變成一個消息或事件驅動的異步處理系統。

因此在這個過程中你需要去處理任務調度,處理異常容錯,處理分布式事務和回退機制。所有的這些底層邏輯要從零開始實現本身還是有一定難度的。

Node-RED是一種基于流的編程工具,它有一個可視化編輯器,允許將節點連接在一起創建流。滿足微服務編排最基礎的可視化服務編排需求。Node-RED最初是IBM在2013年末開發的一個開源項目,以滿足他們快速連接硬件和設備到Web服務和其他軟件的需求——作為物聯網的一種粘合劑,它很快發展成為一種通用的物聯網編程工具。

因此通過選型后,最終選擇了Node-Red來實現微服務編排,當時我們規劃的接口服務串行,并行,數據合并整合,規則處理,異常捕獲,日志記錄等需要都能夠實現。

整體來講Node-Red應對簡單的服務組裝,組合沒有任何問題。但是如果存在類似BPEL一樣的自動化業務流處理,仍然不合適。畢竟Node-Red這個開源項目誕生的目的仍然是為了應對物聯網領域常見的任務和事件處理,重點是多個任務或事件的編排而非類似業務系統功能開發中的流程編排。

微服務下Http API接口編排關鍵點

我們這里談的微服務編排更多的是指對微服務暴露的Http API接口的可視化編排和組裝。這個是談論這個點的前提。

對于微服務編排引擎底層前面已經談到重點是消息中間件,分布式任務調度和執行邏輯,狀態機等。那么在這個底層邏輯上面進行微服務API編排的時候還需要具備或擴展哪些關鍵能力,初步思考如下。

其一是對于Json格式的處理。

也就是服務編排中會經常遇到Json格式的拆分,合并,數據映射等操作,一個編排引擎必須在這個方面相當靈活。Json格式的字符串本身也是存在規則,是可以模板化的,只有模板化后才方便進行處理。同時一個Http接口調用本身存在輸入,輸入的內容在后續多個編排節點都可能使用到,因此還需要支持輸入信息的參數化處理。

這些參數對于整個組合服務運行實例中的全局參數,在后續任何節點都可以引用到。

比如當獲取訂單信息的時候,我們希望同時返回訂單對應的供應商的基本信息。也就是先調用獲取訂單信息,拿到供應商編碼后再去調用獲取供應商信息,最好將供應商信息結果拼裝到整個訂單信息中返回。

  1. //調用GetOrderInfo獲取Order信息  
  2. //根據返回的supplierid發起對GetSuplier接口調用  
  3. //將返回的信息作為子對象拼裝到完整Json里面     
  4.        orderInfo  
  5.           {  
  6.                orderid  
  7.                ordername  
  8.                supplierid  
  9.                    {  
  10.                         suppliername:  
  11.                         suppliertype:  
  12.                         address:  
  13.                          contactphone:  
  14.                     }  
  15.             }  

可以看到,編排的時候同時調用多個API接口并不難,難的地方是如何完成結果的映射,快速,靈活的組裝,這個能力反而更加關鍵。

在傳統的SOA服務編排里面,經常會采用類似Xslt模板來完成數據的映射,組裝等操作,這種參數化模板映射的思路完全可以借鑒。

其二就是業務規則和邏輯處理

在常規的SOA服務組裝中,一般會將BPEL和規則引擎結合,來實現復雜業務規則和邏輯的處理。而對于微服務編排,本身就是一種偏輕量的編排,不適合處理過于復雜的業務規則和邏輯。

因此服務可視化編排中,能夠支撐最簡單額分支判斷邏輯,條件組合邏輯就可以了。而對于更加復雜的邏輯建議是單獨先實現一個規則處理的原子服務API接口,再應用到微服務編排中去。

對于低代碼開發平臺的應用,我在前面也提到過這個觀點。

即首先低代碼開發平臺應該是基于服務分層的思路,將前端開發和后端服務能力區別開,通過服務層來徹底解耦。其次就是在服務層提供可視化服務編排能力,提供編排后的組合服務給前端應用調用,減少前端應用調用難度。

但是如果出現了復雜的業務規則處理邏輯,這個就不要在服務編排里面去處理,還是單獨實現一個規則處理API接口服務,再暴露出來給上層應用或編排設計器使用。

其三就是分布式事務處理機制

由于將多個微服務API接口服務編排在一起,一定會產生分布式事務問題。

當前的編排技術實際本身又為了完全同步等待的方式和異步類似任務事件和狀態機處理機制。在前面我們談到兩個場景。

如果是簡單的服務組合,拆分,可以用同步模式。但是如果是類似業務流程處理的多個服務串行編排,建議是采用異步任務事件處理機制。底層也需要消息中間件和中間態數據的存儲機制來進行支撐。

實際在微服務編排里面的分布式事務處理,最佳的方式仍然是基于冪等規則下的事務補償。

我們一個最簡單的例子。在訂單保存的時候需要扣減庫存。

這個時候涉及到SaveOrderAPI接口和FreezeStockAPI兩個接口,對于扣減庫存有一個對應的逆操作接口ReleaseStockAPI。

那么你在進行微服務編排的時候實際需要將這三個接口都編排進去,而且還需要增加判斷規則邏輯,即當SaveOrderAPI失敗的時候進行ReleaseStockAPI,庫存扣減回退操作。

那么是否有一種方式將這個過程簡化。

即涉及到分布式事務的場景,我們對任何一個API接口服務都需要同時配置這個服務的逆操作回退API接口服務。那么當下游服務操作在出現異常的時候,由整個微服務調度機制通過調研逆向API接口,自動發起多上游服務的回退操作。

如果回退操作仍然失敗,那么發送異常處理通知或郵件,通知人工介入操作。

第四點是微服務鏈路監控

在談微服務的時候經常會談到微服務鏈路監控,簡單來說就是前端是調用一個按鈕處理,但是按鈕方法的實現邏輯里面可能會調用多個微服務API,因此需要對整個鏈路進行監控,以方便進行性能問題分析,異常問題排查。

在使用微服務編排后,按鈕原來的處理邏輯已經轉換到微服務編排和設計里面去完成。一個編排后的微服務在內部可能會調用多個微服務API接口,形成微服務API的接口調用鏈。而這個內容仍然需要提供完整的監控,日志查看能力。

這個和工作流引擎里面的流程監控類似。

即微服務編排完成的也是一個流程,是自動化的業務流,中間調用多個API接口服務,因此需要對整個自動化業務流做到端到端監控。通過微服務流程實例進入后,能夠詳細看到當前執行到哪個環節,如果出現異常也能夠快速地排查到具體的錯誤異常日志。

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2014-12-10 10:36:23

IaaS云應用場景

2015-08-04 17:45:54

Docker應用

2021-01-12 09:38:02

微服務服務組合編排

2020-11-13 10:45:44

微服務架構數據

2023-10-30 00:11:48

微服務負載均衡場景

2022-10-08 07:31:26

微服務編排體系

2023-10-26 23:35:02

SSH登錄部署

2015-08-03 13:36:40

Docker技術優勢應用場景

2012-10-23 09:32:07

2015-07-16 11:57:33

2019-12-06 13:55:28

人社部大數據應用場景

2011-05-17 15:24:18

Shibboleth認證

2011-03-07 15:24:17

LBS

2016-04-11 15:49:40

人工智能大數據應用IBM

2018-05-25 13:04:21

UES應用場景

2021-09-02 18:47:02

redis存儲中間件Remote Dict

2022-09-05 14:46:01

元宇宙區塊鏈人工智能

2018-04-02 14:50:22

Java多線程應用場景

2015-06-15 16:24:50

點贊
收藏

51CTO技術棧公眾號

中文字幕亚洲欧美日韩在线不卡 | av在线天堂播放| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | 国产资源在线观看入口av| 日韩在线小视频| 91精品国产免费久久综合| 中文字幕一区二区三| 精品国产乱码久久久久久1区2匹| 宅男一区二区三区| 亚洲第一中文字幕在线观看| 国模吧视频一区| 中文字幕在线二区| 欧美怡春院一区二区三区| 麻豆91精品视频| 欧美jjzz| 丁香婷婷成人| 激情五月亚洲色图| 91久久精品www人人做人人爽| 伊人一区二区三区久久精品 | 久久久久久久久蜜桃| 国产激情一区二区三区桃花岛亚洲| 欧美成人有码| 中文字幕午夜精品一区二区三区| 欧美日韩中文一区二区| 欧美亚洲色图校园春色| 国产精品对白| 日韩成人免费av| www.久久99| 8848成人影院| 2021年精品国产福利在线| jizzyou欧美16| 亚洲二区av| 日韩电影av| 国产精品一区二区三区av| 视频精品一区二区三区| 日韩在线成人| 97在线精品| 亚洲一本二本| 三级不卡在线观看| 国产精品久久久免费| 亚洲一卡久久| 97aⅴ精品视频一二三区| 久久久久综合网| 亚洲超碰精品一区二区| 亚瑟在线精品视频| 亚洲美女区一区| 尤物视频一区二区| 欧美一卡二卡三卡| 欧美电影影音先锋| 亚洲国产高潮在线观看| 久久成人国产精品| 国产日韩在线视频| 2018国产在线| 日韩电影中文字幕一区| 欧美性69xxxx肥| 中文字幕亚洲欧美在线| 久久免费视频观看| 国产伦视频一区二区三区| 中文字幕免费高| 国产乱子伦农村叉叉叉| 天堂男人av| 91精品韩国| 日韩在线观看电影完整版高清免费悬疑悬疑| 视频一区二区三区入口| 亚洲欧美精品午睡沙发| 日韩精品视频在线播放| 国产精品美女无圣光视频| 欧美一级欧美一级| 一道本在线免费视频| 青青在线视频| 国产精品久久久久一区二区三区厕所 | 丁香婷婷激情网| 久操视频在线播放| 麻豆影院在线| 精品日产免费二区日产免费二区| 日韩制服丝袜先锋影音| 天堂午夜影视日韩欧美一区二区| 国产日韩成人精品| 欧美精品日韩精品| 91九色偷拍| 免费看黄视频网站| 日韩电影网站| 美女一区二区视频| 性感美女久久精品| 久99久在线视频| 超碰成人免费在线| 午夜av电影| 在线日韩成人| 国产精品中文字幕日韩精品| 欧美日韩亚洲一区三区| 婷婷久久综合九色综合伊人色| 九九久久久久久久久激情| 中文视频一区视频二区视频三区| 亚洲成人福利| 日韩三级不卡| 久久久久久9999| 一本一本久久a久久精品牛牛影视| 中国人体摄影一区二区三区| 亚洲有码转帖| 少妇一区二区三区| 国产精品日韩成人| 久久视频免费观看| 黄色三级中文字幕| 午夜av成人| 国产精品123区| 亚洲欧美国产精品专区久久| 欧美日韩一区在线视频| 免费福利影院| 91九色鹿精品国产综合久久香蕉| 国产精品1区2区| 一区二区亚洲欧洲国产日韩| 久久久99爱| 欧美wwww| 国产一区免费电影| 亚洲精品小视频在线观看| 国产欧美123| 91麻豆精品国产综合久久久 | 91超碰caoporn97人人| 欧美黑人经典片免费观看| 成人网ww555视频免费看| 懂色一区二区三区免费观看| 亚洲视频欧美视频| 日韩精品极品视频在线观看免费| 黄色精品免费看| 99riav1国产精品视频| 一本大道久久a久久综合婷婷| 91手机视频在线观看| 亚洲精品第一国产综合野草社区| 精品国内自产拍在线观看视频| 性做久久久久久久免费看| 国产美女精品久久久| 草草在线视频| 国产精品乱码妇女bbbb| 91九色偷拍| 粉嫩91精品久久久久久久99蜜桃 | 欧美午夜精品伦理| 水蜜桃一区二区| 成人激情久久| 亚洲三级免费观看| 欧美精品在线免费观看| 国产九色在线| eeuss国产一区二区三区| 欧美中文字幕在线播放| 国产精品久久麻豆| 国产成人精品免费网站| 国产精品91免费在线| 一根才成人网| 一区二区三区.www| 91国在线高清视频| 天天躁日日躁成人字幕aⅴ| 亚洲的天堂在线中文字幕| 久草香蕉在线| 日韩av一区二| 97超视频免费观看| 欧美日韩国产精品一区二区亚洲| 日韩在线免费高清视频| 国产精品亚洲一区二区三区在线| 欧美人与性动xxxx| 国产精品国产精品| 哥也色在线视频| www欧美成人18+| 国产欧美精品va在线观看| 第四色日韩影片| 国产精品嫩草久久久久| 亚洲第一导航| 成人在线亚洲| 久久夜精品va视频免费观看| 99在线播放| 精品久久久久久中文字幕| 日本a级片免费观看| 国产精品一卡| 91久久国产综合久久91精品网站 | 精品国模在线视频| 2021国产视频| 高清电影在线观看免费| 久久久久久黄色| 久久成年人免费电影| 92看片淫黄大片一级| 99久久婷婷| 亚洲天堂免费视频| 国产一级不卡毛片| 天堂成人娱乐在线视频免费播放网站| 亚洲三级电影全部在线观看高清| 国产视频久久久久| 免费看国产一级片| 国产老肥熟一区二区三区| 久久精品国产99精品国产亚洲性色| 在线一级成人| 久久99热精品| 123区在线| 欧美性感一区二区三区| 国产一二三区在线视频| 午夜视频在线观看一区二区| 国产精品久久a| 激情综合五月| 在线精品91av| 日韩欧美激情| 日韩在线精品视频| 中日韩免视频上线全都免费| 欧美性视频网站|