精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

實施微服務架構的關鍵技術

移動開發 開發
大家都在提微服務架構,微服務架構到底是什么?它有哪些特點和設計模式?我們在打造微服務架構過程中,這些設計模式在實戰當中如何應用?數據的一致性應該如何保證?今天我將針對上述疑問分享一下我的思考。

大家都在提微服務架構,微服務架構到底是什么?它有哪些特點和設計模式?我們在打造微服務架構過程中,這些設計模式在實戰當中如何應用?數據的一致性應該如何保證?今天我將針對上述疑問分享一下我的思考。

微服務架構特點

什么是微服務架構?看下圖的這段英文,這是Martin Fowler 在2014年提出來的,微服務架構是一種架構模式,既然是架構模式,那么,它就必然需要滿足一些特點。他提到,微服務架構是一系列小的微服務構成的組合,那么,什么是“小的微服務”?可能每個人的理解都不一樣,大家都應該都知道SOA架構,SOA架構的粒度是比較粗的,到底我們應該以什么樣的粒度拆分微服務?我認為,微服務架構本質上一個業務架構,那么對業務了解的越深刻,你的微服務拆分就越合理。 

圖1

比如我們做二手交易平臺(轉轉),該平臺包括用戶體系、商品體系、交易體系以及搜索推薦體系。因為各個體系比較獨立,那么我們就可以按照各個業務模塊來拆分微服務。當然,這樣做還不夠,因為你的商品里面還有很多功能,但是大的思路是按照具體商品內部的邏輯來進一步拆分。

第二,圍繞具體業務建模。一切脫離業務場景談微服務架構都是耍流氓。

方法有二:首先將某一領域的模型作為獨立的業務單元:比如二手交易中的商品、訂單、用戶等;其次將業務的行為作為獨立的業務單元:比如發送郵件、單點登錄驗證、push服務。

第三,整個微服務都可以獨立地部署,因為每一個維服務Process都是獨立的,所以按照每個模塊進行獨立的部署也是很容易理解的。

第四,去中心化管理。打造去中心化管理意思就是微服務的每個模塊和開發語言、運行平臺沒有關系,開發語言可以是C++,可以是go,也可以是世界上***的語言,運行的平臺是Linux,Unix、Windows等都可以。

***一點就是輕量級通信,這點很容易理解,通信和模塊語言、平臺沒有關系。盡可能選用輕量級的通信來做這個事情,這樣實施跨平臺、跨語言的時候就很容易。

講完這些特點,我們可以看一看一個標準DEMO級的微服務架構到底是由哪些元素組成的?如下圖,主要 包括網關、微服務、數據存儲、注冊中心、配置中心。 

元素組成

既然是DEMO級的,和實際情況下相比肯定有所差別。那么,實際案例中,我們到底應該如何做這件事情?這個例子也是最近我在做的二手交易平臺——轉轉。這里和DEMO有些不一樣的地方。前面的***層還是網關,下面有微服務的聚合層,作用是做各種業務邏輯的處理;聚合層下面是我們的數據原子層,主要做數據訪問代理,只不過根據業務的不同垂直分開了。可以看到,網關、數據層,注冊中心、配置中心都有,只不過在業務處理部分分成兩層:一層是原子層,也就是整個數據訪問的代理層,提供了用戶的接口;另外一層就是上層的業務聚合層。 

總體架構設計

架構設計模式及實踐案例

上面我大概講了下微服務的一些特點以及DEMO級的微服務包括哪些部分以及實際案例中我們的設架構設計模式。那么,我們為什么要采用這種模式去做?除了這種架構模式之外還有哪些其它的架構模式?這里,模式還是非常多的,我會重點講這幾點:鏈式設計模式、聚合器設計模式和異步共享模式。

首先我們來說下鏈式設計模式,在這種模式下,APP前端請求首先要經過網關層,接下來連續調用兩個微服務,調了微服務1之后還要調微服務2。為什么叫做鏈式呢?因為在調用過來以后先到微服務1,然后再同步地調用微服務2,微服務2會做一些處理,處理以后微服務2才會反饋給微服務1,微服務1再反饋給Gateway,***反饋到APP。在實際業務場景中,涉及到交易和訂單的業務場景都會用到這種模式。 

鏈式設計模式

接下來是聚合器設計模式,APP前端一個調用請求經過Gateway,到達聚合層,需要調用三個微服務,聚合層將三個微服務的返回結果做一些聚合處理,比如可以進行一些排序或者去重,聚合之后再反饋到Gateway和APP前端,這是一個典型的聚合器設計模式。

第三種模式是數據共享模式,這種模式相對比較簡單,比如APP經過微服務網關,接下來調用微服務1和微服務2,理想情況下微服務1和微服務2都有自己獨立的DB,但是有些情況下由于微服務1和微服務2的請求量和存儲量較小,從資源利用率的角度來講,這兩個微服務的DB是共享的,因此這種就是數據的共享模式。

***一種是異步消息設計模式,不管是鏈式設計、聚合器模式還是共享數據模式,架構模式都是同步模式。也就是說我的一個請求發出去必須等到每個環節都處理完才會給客戶端。如果請求不需要關注處理結果,這時候可以異步來實施。APP更新請求經過微服務網關,持久化到MQ,寫入MQ成功后馬上Response給APP客戶端,之后微服務根據需要從MQ里面訂閱更新消息進行異步處理,我們為了提高吞吐量也會采用這種模式。

我從百度到轉轉這幾年經歷了很多業務場景,使用的無非就是聚合器、異步和數據共享的數據模式,特別是前面兩個用得特別多,下面我們來看一些例子。

接下來我們看個例子,這是我們在2015年做的一個二手交易平臺(轉轉),這個二手交易平臺包括商品、分類搜索、關鍵詞搜索、商品推薦等功能。一個用戶請求過來,先經過網關,網關下面就是我們的聚合層,聚合層再去調用商品、交易、推薦以及搜索相關的,最終在聚合層把各個微服務原子層的結果匯總起來Response給到客戶端。具體如下圖所示:

異步消息模式的這個案例比較早了,當時我們做了Feed 流,類似現在的微信朋友圈,這是我在百度做的事情。當時,我們采用的架構模式是異步架構模式。前面是我們的APP,經過了網關,到達異步提交層,可以認為是持久化功能的MQ。用戶請求經過網關到消息異步提交層后就返回了,業務處理部分從MQ里面讀取數據再進行異步處理。這個時候吞吐量會增加,但是會帶來一定的困惑。比如這個時候我發了一條Feed,用戶再一查就直接到數據庫里面查,可能異步提交消息隊列有延遲,查不到,用戶就困惑了,這個問題怎么解決?我們就想能不能在前端幫我們做一些事情?比如提交了MQ返回Response 200以后,前段配合插入這條Feed。用戶再次刷新時候我相信已經是好幾秒以后的事情了,即使有延遲,這個消息早就被你的業務處理完了。當然,我們這里是有特定場景的,社區時候可以這樣去做,但是涉及到和金融相關的場景肯定不會這么去做。

數據一致性實踐

微服務模塊比較分散、數據也比較分散,整個系統復雜性非常高,如何進行數據一致性實踐?在一個單體模塊里面可以做Local Transaction,但是在微服務體系里面就不奏效。雖然難解決,但是不能不解決,不解決的話微服務架構就很難實施。我們知道微服務中做強一致性性的事情是非常難的,今天分享的更多的是解決最終一致性。因為在微服務下基于不同的數據庫,Local Transaction是不可用的。大家在在分布式事務里面一定聽說過兩階段提交和三階段提交,這種場景其實在微服務架構里面也行不通,原因是因為它本質上是同步的模式,同步的模式之下做數據一致性吞吐量降低的非常多。

我們的業務場景無非是兩種:***種是異步調用,就是一個請求過來就寫到消息隊列里面就行,這種模式相對簡單。今天主要講下同步調用的場景之下怎么打造數據的最終一致性。既然是同步調用場景,并且不能降低業務系統的吞吐量,那么應該怎么做呢?建立一個異步的分布式事務,業務調用失敗后,通過異步方式來補償業務。我們的想法是能不能在整個業務邏輯層實現分布式事務語義策略?如何實現,無非有兩種,***是在調正常請求的時候要記錄業務調用鏈(調用正常接口的完整參數),第二是異常時沿調用鏈反向補償。

基于這個思路,我們架構設計上的關鍵點有三,***是基于補償機制,第二是記錄調用鏈,第三是提供冪等補償接口。架構層面,看下圖,右邊是聚合器架構設計模式,左邊是異步補償服務。

首先需要在聚合層引入一個Proxy。首先基于方法,在方法名加注解標注補償方法名,比如:- @Compensable(cancelMethod=“cancelRecord”)

另外,聚合層在調用原子層之前,通過代理記錄當前調用請求參數。如果業務正常,調用結束后,當前方法的調用記錄存檔或刪除,如果業務異常,查詢調用鏈回滾。

原子層我們做了哪些事情呢?主要是兩方面,***是提供正常的原子接口,其次是提供補償冪等接口。

分布式事務關鍵是兩個表(如上圖),***是事務組表,假設A->B->C三個請求是一個事務,首先針對ABC生成一個事務的ID,寫在這個表里面,并且會記錄這個事務的狀態,默認的情況下正常的,執行失敗以后我們再把狀態由1(正常)變成2(異常);第二個表是事務調用組表,主要記錄事務組內的每一次調用以及相關參數,所以調用原子層之前需要記錄一下請求參數。如果失敗的話我們需要把這個事務的狀態由1變成2;第三,一旦狀態從1變成2就執行補償服務。這是我們的補償邏輯,就是不斷地掃描這個事務所處的表,比如一秒鐘掃一次事務組表,看一看這個表里面有沒有狀態為2的,需要執行補償的服務。這個思路對業務的侵入比較小。

具體看下我們實際的例子,比如二手交易平臺里面創建訂單事務組的正常流程,從鎖庫存到減紅包再到創建訂單,創建事務組完畢之后開始調用業務,首先Proxy記錄鎖庫存調用的參數,之后開始鎖庫存服務調用,成功后之后又開始減紅包和創建訂單過程,如果都成功了直接返回。

再看一下異常的流程,前面幾步都是一樣的,只是在調紅包服務、Proxy創建紅包的時候如果失敗了就會拋出異常,業務正常返回,聚合層Proxy需要把事務組的狀態由1改成2,這個時候由左邊的補償服務異步地補償調用。

 作者簡介:孫玄,58集團技術委員會主席,本文來自于作者在CCTC 2017上的演講整理。

責任編輯:張子龍 來源: 極客頭條
相關推薦

2023-09-25 08:00:00

架構微服務

2021-06-29 16:12:21

詞: 云架構混合云云計算

2017-07-04 14:57:40

微服務paasdocker

2018-11-21 14:44:33

數據庫容器數據架構

2018-03-09 12:00:02

數字化數據庫容器

2013-04-28 14:34:02

服務器虛擬化

2025-02-17 09:00:00

DeepSeek人工智能AI

2023-09-20 20:11:07

Java

2011-03-21 15:29:46

2018-01-03 00:38:20

大數據Hadoop分布式文件系統

2015-09-11 13:54:51

大數據關鍵技術

2016-11-17 18:19:13

VR直播

2022-04-15 15:03:42

云計算容器Linux

2021-05-17 14:57:22

NFV虛擬化數據

2024-08-16 10:11:24

2023-04-04 10:33:07

自動駕駛

2018-03-27 09:10:52

AI

2021-03-03 09:32:21

大數據關鍵技術數據存儲

2016-10-28 13:12:41

2019-07-11 15:25:02

架構運維技術
點贊
收藏

51CTO技術棧公眾號

久久精品最新地址| 午夜影院久久久| 成人免费看黄网站| 国产精品a成v人在线播放| 一区二区三区日本久久久| 欧美日韩在线播放| 欧洲精品一区二区三区久久| 成年女人的天堂在线| 国产高清精品在线| 国产成人啪精品视频免费网| 国产女人被狂躁到高潮小说| 久久不见久久见国语| 精品女同一区二区| 亚洲va综合va国产va中文| a级片在线免费观看| 国产片一区二区| 国产精品区一区| 136福利视频导航| 在线亚洲自拍| 欧美高跟鞋交xxxxxhd| 成人一级片免费看| 欧美一区 二区| 日韩视频一区在线观看| 欧美三级理论片| а√在线中文网新版地址在线| 国产精品美女久久久久久2018| 鲁片一区二区三区| 欧美一级片免费| 国产精品一级黄| 国产精品视频在线观看| 国产精品免费精品一区| 99热这里只有精品8| 色综合天天狠天天透天天伊人| 欧美自拍偷拍网| 国产伦精品一区二区三区千人斩| 亚洲第一精品福利| 韩国一区二区三区四区| 成人亚洲精品| 欧美日韩中文精品| 99视频在线免费| 欧洲亚洲两性| 日韩欧美中文字幕在线播放| 欧美精品免费视频| 女人另类性混交zo| 999av小视频在线| 一区二区国产视频| 亚洲精品偷拍视频| 欧美高清视频| 国产精品美日韩| 亚洲成人a**址| 成人高清网站| 国产日韩欧美不卡在线| 欧美连裤袜在线视频| 日本一本草久在线中文| 26uuu另类欧美| 久久99精品国产一区二区三区| 欧美一级在线免费观看| 国产69精品久久777的优势| 亚洲最大福利视频网站| 国产视频手机在线观看| 国产精品乡下勾搭老头1| 亚洲影院在线看| 亚洲乱码国产乱码精品精软件| 国产·精品毛片| 久久久久一区二区三区| 国产中文字幕在线播放| 国产精品欧美综合在线| 椎名由奈jux491在线播放| 18videosex性欧美麻豆| 亚洲高清一区二区三区| 国产精品97在线| 99riav视频一区二区| 欧美另类久久久品| 性活交片大全免费看| 日韩欧美黄色| 中文字幕视频在线免费欧美日韩综合在线看 | 亚洲天堂2020| 国产中文av在线| 韩日成人在线| 国产成人免费91av在线| 国产熟女精品视频| 99久久精品免费| 色一情一乱一伦一区二区三区丨 | 精品女厕一区二区三区| 人妻无码视频一区二区三区| 91精品国产一区二区在线观看| 日韩精品一区二区三区视频播放 | 豆国产97在线| 青青草免费在线| 成人免费小视频| 免费毛片网站在线观看| www.欧美| 丁香桃色午夜亚洲一区二区三区| 国产精品制服诱惑| 加勒比一区二区三区在线| 国产精品毛片久久久久久久| 91动漫在线看| av在线日韩| 日韩欧美精品在线视频| 国产成人精品无码免费看夜聊软件| 国产精品99久久久久久动医院| 欧美激情一级欧美精品| 久久久久精彩视频| 成人国产一区二区三区精品| 亚洲精品久久久久久一区二区| 蜜桃成人365av| 欧美视频中文字幕| 丰满大乳奶做爰ⅹxx视频| 91成人网在线观看| 国产成人精品久久亚洲高清不卡| 成人免费观看在线视频| 中文字幕免费观看一区| 欧美,日韩,国产在线| 国产精品成人3p一区二区三区| 亚洲欧美日韩精品| 国产在线视频第一页| 韩国理伦片一区二区三区在线播放| 精品不卡一区二区三区| av免费在线免费观看| 欧美三电影在线| 国产精成人品免费观看| 极品av少妇一区二区| 91欧美精品午夜性色福利在线| 国产亚洲依依| 国产视频网址在线| 欧美爱爱网站| 国产不卡免费视频| 亚洲一卡二卡区| 免费成人在线电影| 欧美精品一区二区精品网| 亚洲一二三在线观看| 首页欧美精品中文字幕| 精品国产一区二区三区日日嗨| 亚洲视频一区二区| 影音先锋久久精品| 日韩欧美大尺度| 6080国产精品| 九一成人免费视频| 一道本无吗dⅴd在线播放一区 | 老司机在线视频二区| 久久久91精品国产一区二区三区| 视频一区亚洲| 亚洲a∨精品一区二区三区导航| 日韩大陆欧美高清视频区| 国产午夜久久久| 成人精品电影在线观看| 人人干视频在线| 另类ts人妖一区二区三区| 91精品国产电影| 四虎影视2018在线播放alocalhost| 欧美日韩免费在线| 性欧美13一14内谢| 日本一不卡视频| 一级做a爰片久久| 国产精品免费精品自在线观看| 久久在线精品视频| www.xxxx国产| 亚洲成人av福利| aaaaa级少妇高潮大片免费看| 噜噜噜躁狠狠躁狠狠精品视频 | 亚洲欧美综合| 国产精选在线观看91| 美女露胸视频在线观看| 亚洲欧美日韩精品久久亚洲区| 五月婷婷中文字幕| 中文字幕久久午夜不卡| 99久久99精品| 亚洲欧洲一级| 五月天国产一区| 激情视频亚洲| 77777亚洲午夜久久多人| 免费资源在线观看| 精品视频在线看| 麻豆视频在线观看| 久久奇米777| 91av视频免费观看| 精品电影一区| 奇米影视首页 狠狠色丁香婷婷久久综合 | av香蕉成人| 亚洲第一精品夜夜躁人人躁| 中文字幕国产在线观看| 中文字幕欧美一| 年下总裁被打光屁股sp| 久久九九精品| 国产日产欧美一区二区| 亚洲综合图色| 亚洲www永久成人夜色| 亚洲女同av| 欧美精品亚州精品| 蜜桃视频在线免费| 日韩欧美亚洲另类制服综合在线| 好看的av在线| 日韩毛片在线免费观看| 丝袜美腿中文字幕| 国产原创一区二区| 国产高清精品在线观看| 一本一道久久a久久精品蜜桃| 欧美二区在线| 18国产精品| 国产精品午夜一区二区欲梦| 黑人另类精品××××性爽| 中文字幕成人精品久久不卡 | 不卡一区中文字幕| 亚洲视频第二页| 在线视频日韩| 日本a级片在线观看| 国产日产精品_国产精品毛片| 大波视频国产精品久久| 欧美a一级片| 热草久综合在线| 岛国片av在线| 久久精品中文字幕| jizz在线观看视频| 亚洲精品视频免费| 亚洲国产欧美另类| 欧美精品精品一区| 中文字幕永久在线视频| 欧美色另类天堂2015| 国产成人精品亚洲男人的天堂| 国产精品电影一区二区三区| 无码h肉动漫在线观看| 不卡区在线中文字幕| 日本人妻一区二区三区| 国产伦理精品不卡| 亚洲日本黄色片| 秋霞影院一区二区| 丁香婷婷激情网| 国产精品美女| 秋霞无码一区二区| 国产精品vip| 欧美这里只有精品| 天天综合国产| 最新不卡av| 国产精品成人a在线观看| 日本在线播放不卡| 欧美日韩国产高清电影| 欧美在线一二三区| 精品国产乱码久久久久久果冻传媒| 欧美日本亚洲| 精品国产91乱码一区二区三区四区| 蜜桃成人在线| 蜜臀av免费一区二区三区| 久热这里只精品99re8久| 丝袜连裤袜欧美激情日韩| 精品一区二区三区视频日产| 久久夜色电影| 久久偷看各类wc女厕嘘嘘偷窃 | 久久久久免费av| 精品婷婷伊人一区三区三| 国产无套丰满白嫩对白| 婷婷丁香激情综合| 色婷婷在线观看视频| 午夜电影网一区| www.中文字幕在线观看| 欧美午夜电影在线| 中文字幕在线欧美| 欧美综合欧美视频| 亚洲网站在线免费观看| 7777精品伊人久久久大香线蕉的| 91在线视频国产| 日韩午夜在线观看视频| 性一交一乱一精一晶| 亚洲成人网在线| 亚洲三区在线播放| 中文字幕一精品亚洲无线一区| 免费av网站在线观看| 美女久久久久久久久久久| 成人影院在线播放| 日本午夜在线亚洲.国产| 成人免费一区| 亚洲直播在线一区| 亚瑟一区二区三区四区| 午夜免费电影一区在线观看| 希岛爱理av一区二区三区| 女人被男人躁得好爽免费视频 | 精品久久久久久无码中文野结衣| 在线看片一区| 欧美日韩在线观看不卡| 国产在线不卡一区| 极品白嫩丰满美女无套| 国产精品欧美一区二区三区| 久久免费视频精品| 一本大道久久a久久综合婷婷| 一级黄色短视频| 精品捆绑美女sm三区| 国产资源在线播放| 欧美黄色三级网站| 8av国产精品爽爽ⅴa在线观看 | 亚洲精品一区二区三区蜜桃| 亚洲人成电影在线| 色网在线观看| 国产精品久久久久久久久久小说| 亚洲精品一二三**| 无遮挡亚洲一区| 99精品久久| 手机精品视频在线| 久久久激情视频| 国产性70yerg老太| 欧美三级视频在线| 天堂中文在线视频| 欧美精品做受xxx性少妇| 户外露出一区二区三区| 99国产在线视频| 久久五月天小说| 成年人免费在线播放| 国产精品888| 1024手机在线观看你懂的| 午夜av电影一区| 精品黑人一区二区三区国语馆| 国产亚洲精品久久久久久牛牛| xxx在线免费观看| 91天堂在线观看| 欧美在线免费看视频| 日韩精品―中文字幕| 国产精品77777| 亚洲天堂一级片| 欧洲激情一区二区| 欧美777四色影视在线| 欧美精品久久久久a| 中文字幕综合| 亚洲欧洲精品一区| 日韩电影免费在线| 白丝女仆被免费网站| 亚洲免费色视频| 国产精品高潮呻吟av| 亚洲最新av网址| 欧洲一级精品| 日本在线视频不卡| 久久精品在线| 手机免费看av| 一本大道久久精品懂色aⅴ| 深夜影院在线观看| 欧美一级黑人aaaaaaa做受| 一本一道久久a久久| 成人在线免费观看网址| 国内成人免费视频| 四虎永久免费在线| 91精品国产手机| a级网站在线播放| 92裸体在线视频网站| 亚洲激情五月| 欧洲成人午夜精品无码区久久| 一区二区三区四区蜜桃 | 亚洲剧情一区二区| 亚洲少妇视频| 日韩欧美一区二区三区久久婷婷| 日韩国产在线观看一区| 色www亚洲国产阿娇yao| 欧美日韩成人一区二区| 黄色av电影在线观看| 亚洲综合国产精品| 亚洲高清在线| 成人免费无码大片a毛片| 欧美午夜电影在线| 超碰97在线免费观看| 国产精品网红直播| 亚洲精品网址| 国产伦精品一区二区三区精品| 精品国产乱码久久久久久虫虫漫画| 神马久久久久| 国产欧美一区二区三区久久| 亚洲乱码精品| 亚洲av成人精品一区二区三区| 狠狠色噜噜狠狠狠狠97| wwwww在线观看免费视频| 91精品综合视频| 最新成人av网站| 鲁丝一区二区三区| 91精品国产综合久久久久久漫画| 黄色美女视频在线观看| 免费中文日韩| 极品少妇xxxx偷拍精品少妇| 久草中文在线视频| 亚洲欧美一区二区三区久久| 国产91在线精品| 91亚洲精品国产| 2024国产精品| 国产精品乱码久久久| 国产综合在线视频| 不卡在线一区二区| 国产无套精品一区二区三区| 色综合天天综合狠狠| 看黄网站在线观看| 好看的日韩精品视频在线| 免费欧美日韩国产三级电影| 劲爆欧美第一页| 国产一区二区三区在线视频 | 狠狠狠色丁香婷婷综合激情| 日本少妇久久久| 日韩在线免费av| 台湾佬综合网| 性一交一黄一片| 欧美午夜电影在线播放| 成人性生交大片免费看在线播放| 色涩成人影视在线播放| av资源网一区| 国产美女自慰在线观看| 国产精品观看在线亚洲人成网| 好看的日韩av电影| 91大神福利视频|