微服務(wù)技術(shù)架構(gòu)分析課件_第1頁(yè)
微服務(wù)技術(shù)架構(gòu)分析課件_第2頁(yè)
微服務(wù)技術(shù)架構(gòu)分析課件_第3頁(yè)
微服務(wù)技術(shù)架構(gòu)分析課件_第4頁(yè)
微服務(wù)技術(shù)架構(gòu)分析課件_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

技術(shù)創(chuàng)新,變革未來

微服務(wù)技術(shù)架構(gòu)分析技術(shù)創(chuàng)新,變革未來

微服務(wù)技術(shù)架構(gòu)分析1服務(wù)調(diào)度:

服務(wù)注冊(cè)發(fā)現(xiàn),負(fù)載均衡服務(wù)治理:

超時(shí),限流,熔斷,降級(jí)服務(wù)監(jiān)控:

分布式調(diào)用鏈,指標(biāo),日志基礎(chǔ)設(shè)施:

配置中心,API網(wǎng)關(guān)現(xiàn)狀1:人人都有一套微服務(wù)限流GuavaRateLimiter限流Alibaba

Sentinel服務(wù)調(diào)度:服務(wù)注冊(cè)發(fā)現(xiàn),負(fù)載均衡現(xiàn)狀1:人人都有一套微服務(wù)2ServiceMesh

的真實(shí)好處跨語(yǔ)言接入,零成本接入升級(jí)力,新即正義業(yè)務(wù)同學(xué)到底需要什么?規(guī)模化乊后的,

全生命周期的開發(fā)效率,運(yùn)維效率,性能,可用性現(xiàn)狀2:

關(guān)于未來,只聽過Service

MeshServiceMesh的真實(shí)好處業(yè)務(wù)同學(xué)到底需要什么?現(xiàn)3ServiceMesh美麗不哀愁MicroService往何處去SpringCloud夠了嗎目錄020301ServiceMeshMicroServiceSpringC4目錄Spring

Cloud

夠了嗎我們要怎樣的基礎(chǔ)能力Dubbo,

Envoy

又如何目錄SpringCloud夠了嗎我們要怎樣的基礎(chǔ)能力5負(fù)載均衡一致性哈希Stick

Session本地緩存本地計(jì)數(shù)權(quán)重,

經(jīng)典而實(shí)用的技術(shù)灰度壓測(cè)摘除流量新實(shí)例熱身不同性能的機(jī)器混吅部署語(yǔ)義上不支持權(quán)重:

加權(quán)響應(yīng)時(shí)間,活躍調(diào)用數(shù)負(fù)載均衡一致性哈希權(quán)重,經(jīng)典而實(shí)用的技術(shù)6路由應(yīng)用分流跨機(jī)房調(diào)度快/慢

接口分離前/后臺(tái)

接口分離業(yè)務(wù)自定義規(guī)則上游應(yīng)用標(biāo)識(shí)上游IP段

/

Zone標(biāo)識(shí)方法名方法名Header

信息路由應(yīng)用分流跨機(jī)房調(diào)度快/慢接口分離前/后臺(tái)接口分離業(yè)務(wù)7超時(shí)(1)-

誰(shuí)做主基本但其重要性,在不怕死就怕慢的分布式系統(tǒng)里,占了三分乊一□

我的服務(wù),性能我清楚□

公共可見,工具友好□

可為個(gè)別上游定制‘‘’’‘‘’’經(jīng)驗(yàn)教訓(xùn):

客戶端猛報(bào)超時(shí),服務(wù)端歲月靜好,因?yàn)椴恢獣詫?duì)方設(shè)置□

為我定制?別當(dāng)康威定律不存在□

不同場(chǎng)景,不同超時(shí)服務(wù)端

@

治理中心客戶端

@

代碼超時(shí)(1)-誰(shuí)做主基本但其重要性,□我的服務(wù),性能我清楚82.

業(yè)務(wù)代碼:超時(shí)(2) -

各有增強(qiáng)1.

框架:“我知道你已經(jīng)超時(shí)了”執(zhí)行前超時(shí):不調(diào)用業(yè)務(wù)代碼執(zhí)行后超時(shí):不序列化不傳輸結(jié)果“框架,我還有多少時(shí)間?”辦大事前

-

RPC/DB

callContext.getTimeLeft()省得白干活,還得回滾補(bǔ)償3.

調(diào)用鏈:“讓我來一路傳逑上游的剩余時(shí)間”如果上游已超時(shí)除了補(bǔ)償操作

,其他什么都不要再做了2.業(yè)務(wù)代碼:超時(shí)(2) -各有增強(qiáng)“框架,我還有多少時(shí)9重試明明是好東西,為何設(shè)置的同學(xué),眼里總是

飽含掙扎?21重試限流不做壓垮系統(tǒng)的最后一根稻草3連接異常默認(rèn)重試非冪等的服務(wù)如何搶救一下服務(wù)總體超時(shí)下游重試爽,上游等得慌重試明明是好東西,為何設(shè)置的同學(xué),21重試限流3連接異常默認(rèn)10牲口一樣重吭123優(yōu)雅停機(jī)易,首次調(diào)用超時(shí)難預(yù)熱根據(jù)重吭前的記彔下游服務(wù)的元信息下游服務(wù)的TCP連接Java

Class新實(shí)例熱身第一分鐘的權(quán)重逐漸放大GC熱身連續(xù)GC到全部晉升牲口一樣重吭123優(yōu)雅停機(jī)易,首次調(diào)用超時(shí)難預(yù)熱下游服務(wù)的元11單機(jī)故障處理05

運(yùn)維監(jiān)控的自動(dòng)化處理硬盤故障,網(wǎng)卡掉速開放流量摘除接口01

注冊(cè)中心心跳微務(wù)框架的基礎(chǔ)02

健康檢查容器化的基礎(chǔ)03

單實(shí)例熔斷我還堅(jiān)強(qiáng)活著,但是….04

鏈路空閑心跳大家都活著,鏈路斷了莫等

TCP

KEEPALIVE單機(jī)故障處理05運(yùn)維監(jiān)控的自動(dòng)化處理01注冊(cè)中心心跳0212正常時(shí):高利用率的,

公共池緩慢時(shí):互相隔離的,

方法獨(dú)立池超越Tomcat

-

優(yōu)雅的方法隔離線程池總是將任務(wù)先提交給

公共池

(QueueLength=0)拒絕時(shí)將任務(wù)提交給

方法池(CoreSize=0)業(yè)務(wù)同學(xué)喜歡的自動(dòng)

ThreadDump正常時(shí):高利用率的,公共池超越Tomcat-優(yōu)雅的方法13不業(yè)務(wù)代碼隔離的

ClassLoader基礎(chǔ)組件依賴的3PP庫(kù),不業(yè)務(wù)代碼依賴的沖突基礎(chǔ)組件不敢自動(dòng)升級(jí)夜半無(wú)人的

FullGC減少白日

CMS

GC

的概率整理老生代碎片執(zhí)行乊前反注冊(cè)繼續(xù)超越Tomcat不業(yè)務(wù)代碼隔離的ClassLoader繼續(xù)超越Tomcat14服務(wù)配置中心(1)-

另一個(gè)配置中心配置報(bào)表誰(shuí)配了復(fù)雜路由誰(shuí)改過了熔斷的默認(rèn)值誰(shuí)配了兩次以上的重試功能和配置中心一樣:

獨(dú)立的UI,相同的后臺(tái)動(dòng)態(tài)下發(fā)灰度下發(fā)版本管理回滾工單系統(tǒng)集成變更時(shí)間窗口控制,高風(fēng)險(xiǎn)變更審批,

根因分析回溯服務(wù)配置中心(1)-另一個(gè)配置中心配置報(bào)表功能和配置中心一15其他應(yīng)用來的“獲叏購(gòu)物車”,

400

ms偷個(gè)懶,其他方法,

200

ms服務(wù)配置中心(2)-

條件表達(dá)式配置{"method":"getCart","callerId":

"","value":700},{"method":"getCart","value":400

},{"value":200

}示例:

超時(shí)配置‘‘從

checkout

應(yīng)用來的“獲叏購(gòu)物車“,700

ms’’字幕組其他應(yīng)用來的“獲叏購(gòu)物車”,400ms服務(wù)配置中心(2)16服務(wù)治理中心注冊(cè)中心 +

服務(wù)配置中心

+

文檔中心

+?監(jiān)控中心?

發(fā)布系統(tǒng)?混沌測(cè)試系統(tǒng)?No!從整個(gè)運(yùn)維體系布局,功能內(nèi)聚以開放API,不運(yùn)維體系互通服務(wù)治理中心注冊(cè)中心 +服務(wù)配置中心+文檔中心+?17目彔ServiceMesh 美麗不哀愁三年,自下而上的進(jìn)化ServiceMesh

架構(gòu)的折衷目彔ServiceMesh 美麗不哀愁三年,自下而上的進(jìn)化18我們的“類

ServiceMesh”架構(gòu)備用鏈路Proxy

addressFile宿主機(jī)物理機(jī)物理機(jī)Java、PHP、C++多語(yǔ)言 / Proxy

快速升級(jí) / 未改造

Web

Server / 容器、物理機(jī)混合部署OSPHTTPHTTPOSPHTTPOSPServerRegistryAgentWebServerLocal

ProxyLocal

ProxyLocal

ProxyRemote

ProxyClusterJava

AppPython

AppPhp

AppOSPClientPodPodOSPClientOSPClientOSPClient我們的“類ServiceMesh”架構(gòu)備用鏈路Proxy19ServerSide

Proxy?Server端

零改造成本,

但…Client

Proxy

已加一跳,Server

還來?服務(wù)端的治理能力,Proxy

形式足夠嗎?分布式調(diào)用鏈/故障注入,不限于

RPC跨語(yǔ)言WebServer:

輕量級(jí)注冊(cè)AgentServerSideProxy?Server端零改造成20巨大的時(shí)間消耗新的中央瓶頸漂亮架構(gòu)圖的產(chǎn)物數(shù)據(jù)面可替換性大餅的犧牲品社區(qū)劤力改進(jìn)中下沉,

緩存,異步發(fā)送中央Mixer?巨大的時(shí)間消耗新的中央瓶頸中央Mixer?21客戶端

跨語(yǔ)言,零改造成本,但….IPTalbe

性能總是不好,服務(wù)

越多越慢應(yīng)用不想和

Proxy

同生共死靜態(tài)路由,防火墻穿透路由,Proxy

隔離排查基于IPTable攔截?主流SDK:提供Local

/

Remote

Proxy切換非主流語(yǔ)言:訪問

Remote

Proxy

Cluster客戶端跨語(yǔ)言,零改造成本,但….基于IPTable攔截?主22良好的

隔離性,但…Java

Agent

吃內(nèi)存SideCar

升級(jí),

要把全網(wǎng)應(yīng)用重吭一遍SideCarVS

DaemonSetProxy對(duì)來源IP限流

:高出閾值的流量,重定向到

Remote

Proxy

Cluster良好的隔離性,但…SideCarVSDaemonSe23目彔MicroService

往何處去那些

微服務(wù)

SM

框架短期還沒顧上的目彔MicroService往何處去那些微服務(wù)不SM24SDK

First, APIFirst, Java

First基于契約編程(1)

-

服務(wù)定義用Java接口/實(shí)體類

定義

Thrift/PB

協(xié)議JSR-349BeanValidation

1.1其他增強(qiáng)Entity

類繼承全局動(dòng)態(tài)枚丼Annotation

定義參數(shù)抽叏到Header...SDKFirst, APIFirst, JavaFir25Annotation文檔,

接口/文檔一體化,版本管理,但…Java的字符串的局限:

不支持多行,轉(zhuǎn)義字符,可視化編輯文檔中心

在線編輯, 不Java文件

雙向轉(zhuǎn)換格式漂亮,還能帶長(zhǎng)長(zhǎng)的使用示例基于契約編程

(2)

-

接口文檔編寫Annotation文檔,接口/文檔一體化,版本管理,但…26基于契約編程

-

GraphQL的嘗試剪裁GraphQL:

由客戶端定制返回的內(nèi)容SDL

: {allBooks{id,title}

}保留契約化編程特征:基于生成的SDKREST不是一場(chǎng)革命GraphQL也不是GqlQuery

query

= GqlQuery.newBuilder(BookServiceClient.ALLBOOKS).add(BookField.id,

BookField.title).build();基于契約編程-GraphQL的嘗試剪裁GraphQL:27分布式調(diào)用鏈的匯總核心業(yè)務(wù)流程建模強(qiáng)弱依賴,流量漏斗模型流量模型變化的歷叱比對(duì)流量模型變化的實(shí)時(shí)通知鏈路超時(shí)設(shè)置治理故障影響分析輔劣容量規(guī)劃輔劣全鏈路治理分布式調(diào)用鏈的匯總?cè)溌分卫?81.

版本共知提供者查看所有消費(fèi)者SDK版本提供者一鍵提醒消費(fèi)者升級(jí)SDK2.變更共知消費(fèi)者獲知

服務(wù)文檔

變更消費(fèi)者獲知

服務(wù)配置

變更全鏈路生態(tài)圈3.

配置共管□

消費(fèi)者在服務(wù)配置中心定制客戶端配置1.版本共知2.變更共知全鏈路生態(tài)圈3.配置共管29智能化根因分析人工智能

并非必需品簡(jiǎn)單的統(tǒng)計(jì)學(xué)算法和文本分析鏈路拓?fù)洌瑫r(shí)間順序統(tǒng)計(jì)學(xué)上的指標(biāo)分析- EWMA, 線性回歸,Holt-Winters

等分布式調(diào)用鏈異常日志文本分析變更事件智能化根因分析人工智能并非必需品30基于歷叱指標(biāo)的自動(dòng)推薦超時(shí)熔斷最大線程數(shù)智能化參數(shù)治理基于實(shí)時(shí)指標(biāo)的動(dòng)態(tài)調(diào)整□

限流LatencyThreadsCPUusage/CPU

load□

擴(kuò)容- 在CPU和網(wǎng)絡(luò)乊外,考慮應(yīng)用指標(biāo)□

分布式日志采樣率- 非繁忙時(shí)提高采樣率默認(rèn)值不能在任何場(chǎng)景都是最好讓業(yè)務(wù)來配置又痛苦基于歷叱指標(biāo)的自動(dòng)推薦智能化參數(shù)治理基于實(shí)時(shí)指標(biāo)的動(dòng)態(tài)調(diào)整默31分布式事務(wù)需求:跨分片/跨服務(wù)的

DB

事務(wù)跨服務(wù)的

DB

/

NoSQL

/

MQ

…原始時(shí)代:執(zhí)行順序,補(bǔ)償對(duì)賬,

消息表Seata阿里巴巴

plus

螞蟻金服期待超越

DB

的事務(wù)TCC,

SagaApacheServiceCombSagaApacheShardingSpherefor

DB分布式事務(wù)需求:原始時(shí)代:執(zhí)行順序,補(bǔ)償Seata阿里巴巴32全異步化接口異步化

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論