全鏈路流量控制簡介
在EDAS K8s環(huán)境中,EDAS支持對Spring Cloud微服務應用進行全鏈路流量控制。全鏈路流量控制功能可以幫助您快速靈活地創(chuàng)建一個流量控制環(huán)境,將具有一定特征的流量路由到目標版本應用。
背景信息
在EDAS K8s環(huán)境中,當您部署的Spring Cloud應用存在升級版本時,由于應用間的調(diào)用是隨機的,會導致無法將具有一定特征的流量路由到應用的目標版本。全鏈路流量控制功能將應用的相關版本隔離成一個獨立的運行環(huán)境(即泳道),通過設置流控路由規(guī)則,將滿足規(guī)則的請求流量路由到目標版本應用。
本文以電商架構(gòu)中的下單場景為例介紹全鏈路流控功能。
客戶下單后流量從入口應用(或者微服務網(wǎng)關)進來,調(diào)用交易中心,交易中心再調(diào)用商品中心,商品中心調(diào)用下游的庫存中心。
交易中心和商品中心各有兩個新版本(1和2)在運行,需要對這兩個新版本進行灰度驗證。此時在入口應用(或者微服務網(wǎng)關)上期望將滿足特定流控規(guī)則的請求流量路由到新版本,其余流量全部路由到線上(正式)版本。
在示意圖中,交易中心和商品中心分別存在兩個升級版本(1和2),此時訪問請求會隨機轉(zhuǎn)發(fā)到各個版本,無法進行流量控制。借助全鏈路流量控制功能,將版本1設置為red泳道;將版本2設置為blue泳道,并在入口應用處設置流控規(guī)則,當進入入口應用的請求流量滿足流控規(guī)則時,則將請求流量路由到目標泳道。
名詞解釋
入口應用
微服務體系內(nèi)的流量入口。入口應用可以是Spring Cloud Gateway、Netflix Zuul Gateway引擎類型網(wǎng)關或者Spring Boot、Spring MVC、Dubbo應用。
泳道
為相同版本應用定義的一套隔離環(huán)境。只有滿足了流控路由規(guī)則的請求流量才會路由到對應泳道里的打標應用。一個應用可以屬于多個泳道,一個泳道可以包含多個應用,應用和泳道是多對多的關系。
泳道組
泳道的集合。泳道組的作用主要是為了區(qū)分不同團隊或不同場景。
使用限制
加入全鏈路流量控制的應用,將不再支持金絲雀發(fā)布。
使用Spring Cloud Gateway作為入口網(wǎng)關時,需要Spring Cloud Gateway的版本在2.1.x及以上。
不同規(guī)格的EDAS,泳道組和泳道的配額不一樣:
標準版:在所有地域下最多只能創(chuàng)建2個泳道組;在每個泳道組內(nèi),最多能創(chuàng)建5個泳道。
除專業(yè)版和鉑金版以外的其他所有版本,都屬于標準版。
專業(yè)版:在所有地域下最多能創(chuàng)建20個泳道組;在每個泳道組內(nèi),最多能創(chuàng)建50個泳道。
鉑金版:在所有地域下最多能創(chuàng)建20個泳道組;在每個泳道組內(nèi),最多能創(chuàng)建50個泳道。
不支持提升泳道組和泳道的配額。
如果確定要提升泳道組和泳道的配額,請加入釘群(釘群號:31723701)聯(lián)系產(chǎn)品技術(shù)專家咨詢處理。