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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

Cloud

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

Envoy

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

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

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

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

接口分離前/后臺

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

/

Zone標識方法名方法名Header

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

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

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

公共可見,工具友好□

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

客戶端猛報超時,服務(wù)端歲月靜好,因為不知曉對方設(shè)置□

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

不同場景,不同超時服務(wù)端

@

治理中心客戶端

@

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

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

各有增強1.

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

-

RPC/DB

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

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

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

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

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

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

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

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

單實例熔斷我還堅強活著,但是….04

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

TCP

KEEPALIVE單機故障處理05運維監(jiān)控的自動化處理01注冊中心心跳0212正常時:高利用率的,

公共池緩慢時:互相隔離的,

方法獨立池超越Tomcat

-

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

公共池

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

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

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

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

FullGC減少白日

CMS

GC

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

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

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

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

400

ms偷個懶,其他方法,

200

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

條件表達式配置{"method":"getCart","callerId":

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

},{"value":200

}示例:

超時配置‘‘從

checkout

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

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

服務(wù)配置中心

+

文檔中心

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

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

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

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

addressFile宿主機物理機物理機Java、PHP、C++多語言 / Proxy

快速升級 / 未改造

Web

Server / 容器、物理機混合部署OSPHTTPHTTPOSPHTTPOSPServerRegistryAgentWebServerLocal

ProxyLocal

ProxyLocal

ProxyRemote

ProxyClusterJava

AppPython

AppPhp

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

Proxy?Server端

零改造成本,

但…Client

Proxy

已加一跳,Server

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

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

RPC跨語言WebServer:

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

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

跨語言,零改造成本,但….IPTalbe

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

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

Proxy

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

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

/

Remote

Proxy切換非主流語言:訪問

Remote

Proxy

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

隔離性,但…Java

Agent

吃內(nèi)存SideCar

升級,

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

DaemonSetProxy對來源IP限流

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

Remote

Proxy

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

往何處去那些

微服務(wù)

SM

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

First, APIFirst, Java

First基于契約編程(1)

-

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

定義

Thrift/PB

協(xié)議JSR-349BeanValidation

1.1其他增強Entity

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

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

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

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

在線編輯, 不Java文件

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

(2)

-

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

-

GraphQL的嘗試剪裁GraphQL:

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

: {allBooks{id,title}

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

query

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

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

版本共知提供者查看所有消費者SDK版本提供者一鍵提醒消費者升級SDK2.變更共知消費者獲知

服務(wù)文檔

變更消費者獲知

服務(wù)配置

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

配置共管□

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

并非必需品簡單的統(tǒng)計學(xué)算法和文本分析鏈路拓撲,時間順序統(tǒng)計學(xué)上的指標分析- EWMA, 線性回歸,Holt-Winters

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

限流LatencyThreadsCPUusage/CPU

load□

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

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

DB

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

DB

/

NoSQL

/

MQ

…原始時代:執(zhí)行順序,補償對賬,

消息表Seata阿里巴巴

plus

螞蟻金服期待超越

DB

的事務(wù)TCC,

SagaApacheServiceCombSagaApacheShardingSpherefor

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

溫馨提示

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

評論

0/150

提交評論