色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何解決Spring Cloud下測試環(huán)境路由問題

OSC開源社區(qū) ? 來源:OSC開源社區(qū) ? 作者:OSC開源社區(qū) ? 2022-10-21 09:22 ? 次閱讀

前言

Spring Cloud Tencent 微服務(wù)開發(fā)框架自六月底正式對外宣發(fā)后,受到了許多開發(fā)者非常火熱的關(guān)注。不到一個(gè)月時(shí)間, Github Star 數(shù)就已突破 2000,超過 1000 名開發(fā)者加入我們的社群,并有 20 多個(gè)開發(fā)者參與貢獻(xiàn)項(xiàng)目代碼,項(xiàng)目的熱門程度極大地超出我們的預(yù)期,同時(shí)也驗(yàn)證了我們在最初宣發(fā)文章里的觀點(diǎn):Spring Boot + Spring Cloud 仍是當(dāng)前使用相當(dāng)廣泛開發(fā)框架。

在這一個(gè)月時(shí)間里,Spring Cloud Tencent 的關(guān)注者們最關(guān)心的問題就是,Spring Cloud Tencent 后續(xù)規(guī)劃是什么?

在過去的一段時(shí)間,我們的主要精力聚焦在微服務(wù)領(lǐng)域最基本的服務(wù)治理原子能力,例如服務(wù)發(fā)現(xiàn)、動態(tài)配置、限流熔斷、路由等。Spring Cloud 其它套件基本上也局限于這些基礎(chǔ)能力。但是企業(yè)真正在實(shí)踐 Spring Cloud 過程中,發(fā)現(xiàn)針對自身具體的業(yè)務(wù)場景,這些原子能力并不能直接提供解決方案,往往需要做二次開發(fā)、定制等。例如定制 Spring Cloud Gateway 的 Filter、增強(qiáng) Feign、支持各種復(fù)雜的服務(wù)路由場景等。因此,開箱即用的業(yè)務(wù)通用解決方案對企業(yè)來說更具有價(jià)值。

綜上所述, Spring Cloud Tencent 后續(xù)重要的規(guī)劃之一就是在不斷夯實(shí)服務(wù)治理原子能力的基礎(chǔ)上,提供開箱即用的業(yè)務(wù)通用解決方案,從工具到方案的升級。

為此 Spring Cloud Tencent 新增了 spring-cloud-tencent-plugin-starts 模塊,在此模塊下實(shí)現(xiàn)不同業(yè)務(wù)場景的解決方案。現(xiàn)階段我們主要聚焦在精細(xì)化流量治理能力場景化方案上,并按照開發(fā)流程拆分為三個(gè)階段:

開發(fā)測試階段的多測試環(huán)境場景

發(fā)布階段的金絲雀發(fā)布、藍(lán)綠發(fā)布、全鏈路灰度等

生產(chǎn)運(yùn)行階段的單元化、AB測試等

本期我們主要聊聊開發(fā)測試階段的多測試環(huán)境場景實(shí)戰(zhàn),詳細(xì)介紹 Spring Cloud Tencent 實(shí)現(xiàn)多測試環(huán)境場景的方案。

一、基礎(chǔ)知識

1.1 什么是測試環(huán)境路由

在實(shí)際的開發(fā)過程中,一個(gè)微服務(wù)架構(gòu)系統(tǒng)下的不同微服務(wù)可能是由多個(gè)團(tuán)隊(duì)進(jìn)行開發(fā)與維護(hù)的,每個(gè)團(tuán)隊(duì)只需關(guān)注所屬的一個(gè)或多個(gè)微服務(wù),而各個(gè)團(tuán)隊(duì)維護(hù)的微服務(wù)之間可能存在相互調(diào)用關(guān)系。如果一個(gè)團(tuán)隊(duì)在開發(fā)其所屬的微服務(wù),調(diào)試的時(shí)候需要驗(yàn)證完整的微服務(wù)調(diào)用鏈路。此時(shí)需要依賴其他團(tuán)隊(duì)的微服務(wù),如何部署開發(fā)聯(lián)調(diào)環(huán)境就會遇到以下問題:

如果所有團(tuán)隊(duì)都使用同一套開發(fā)聯(lián)調(diào)環(huán)境,那么一個(gè)團(tuán)隊(duì)的測試微服務(wù)實(shí)例無法正常運(yùn)行時(shí),會影響其他依賴該微服務(wù)的應(yīng)用也無法正常運(yùn)行。

如果每個(gè)團(tuán)隊(duì)有單獨(dú)的一套開發(fā)聯(lián)調(diào)環(huán)境,那么每個(gè)團(tuán)隊(duì)不僅需要維護(hù)自己環(huán)境的微服務(wù)應(yīng)用,還需要維護(hù)其他團(tuán)隊(duì)環(huán)境的自身所屬微服務(wù)應(yīng)用,效率大大降低。同時(shí),每個(gè)團(tuán)隊(duì)都需要部署完整的一套微服務(wù)架構(gòu)應(yīng)用,成本也隨著團(tuán)隊(duì)數(shù)的增加而大大上升。

此時(shí)可以使用測試環(huán)境路由的架構(gòu)來幫助部署一套運(yùn)維簡單且成本較低開發(fā)聯(lián)調(diào)環(huán)境。測試環(huán)境路由是一種基于服務(wù)路由的環(huán)境治理策略,核心是維護(hù)一個(gè)穩(wěn)定的基線環(huán)境作為基礎(chǔ)環(huán)境,測試環(huán)境僅需要部署需要變更的微服務(wù)。多測試環(huán)境有兩個(gè)基礎(chǔ)概念,如下所示:

基線環(huán)境(Baseline Environment): 完整穩(wěn)定的基礎(chǔ)環(huán)境,是作為同類型下其他環(huán)境流量通路的一個(gè)兜底可用環(huán)境,用戶應(yīng)該盡量保證基線環(huán)境的完整性、穩(wěn)定性。

測試環(huán)境(Feature Environment): 一種臨時(shí)環(huán)境,僅可能為開發(fā)/測試環(huán)境類型,測試環(huán)境不需要部署全鏈路完整的服務(wù),而是僅部署本次有變更的服務(wù),其他服務(wù)通過服務(wù)路由的方式復(fù)用基線環(huán)境服務(wù)資源。

部署完成多測試環(huán)境后,開發(fā)者可以通過一定的路由規(guī)則方式,將測試請求打到不同的測試環(huán)境,如果測試環(huán)境沒有相應(yīng)的微服務(wù)處理鏈路上的請求,那么會降級到基線環(huán)境處理。因此,開發(fā)者需要將開發(fā)新測試的微服務(wù)部署到對應(yīng)的測試環(huán)境,而不需要更新或不屬于開發(fā)者管理的微服務(wù)則復(fù)用基線環(huán)境的服務(wù),完成對應(yīng)測試環(huán)境的測試。

雖然測試環(huán)境路由是一個(gè)相對成熟的開發(fā)測試環(huán)境解決方案,但是能夠開箱即用的生產(chǎn)開發(fā)框架卻不多,往往需要開發(fā)者二次開發(fā)相應(yīng)的功能。因此需要一個(gè)相對完善的解決方案來幫助實(shí)現(xiàn)測試環(huán)境路由,簡化開發(fā)難度并提升開發(fā)效率。

1.2 服務(wù)路由

服務(wù)路由模型

服務(wù)路由抽象出最簡化的模型如下圖所示,解決的是 “哪些請求轉(zhuǎn)發(fā)到哪些實(shí)例” 的問題。細(xì)化來看,包含三個(gè)問題:1. 如何精確標(biāo)識請求?2. 如何精確標(biāo)識實(shí)例?3. 如何轉(zhuǎn)發(fā)?

a98a51d2-5086-11ed-a3b6-dac502259ad0.png

(圖:服務(wù)路由模型示意圖)

在流量的微觀世界里,統(tǒng)一通過標(biāo)簽(屬性)來標(biāo)識一個(gè)實(shí)體,例如請求有來源調(diào)用服務(wù)、目標(biāo)環(huán)境標(biāo)簽等,服務(wù)實(shí)例則有版本號、實(shí)例分組、環(huán)境分組等標(biāo)簽。服務(wù)路由則是將滿足標(biāo)簽匹配條件的請求轉(zhuǎn)發(fā)到滿足匹配條件的服務(wù)實(shí)例。所以服務(wù)路由的模型可拆解出如下的的專業(yè)術(shù)語:

服務(wù)實(shí)例染色 (為服務(wù)實(shí)例設(shè)置標(biāo)簽信息

流量染色(為請求設(shè)置標(biāo)簽信息)

服務(wù)路由(根據(jù)路由策略,把請求轉(zhuǎn)發(fā)到目標(biāo)實(shí)例)

服務(wù)實(shí)例標(biāo)簽如何傳遞到調(diào)用方

服務(wù)實(shí)例注冊到注冊中心時(shí),會帶上標(biāo)簽信息。服務(wù)調(diào)用方從注冊中心獲取到服務(wù)實(shí)例信息就包含了實(shí)例的標(biāo)簽信息。

標(biāo)簽全鏈路透傳

有一類請求標(biāo)簽數(shù)據(jù)需要在業(yè)務(wù)響應(yīng)鏈路上一直傳遞,例如全鏈路追蹤里的 TraceId 、測試環(huán)境路由的 FeatureEnv 標(biāo)簽等。

服務(wù)路由和負(fù)載均衡的區(qū)別

服務(wù)路由和負(fù)載均衡都是解決選擇服務(wù)實(shí)例的問題。區(qū)別在于服務(wù)路由是從全量的服務(wù)實(shí)例中挑選出一批滿足路由規(guī)則的服務(wù)實(shí)例,而負(fù)載均衡則是從路由匹配之后的服務(wù)實(shí)例列表中挑選出一個(gè)適合處理請求的實(shí)例。

二、測試環(huán)境路由實(shí)現(xiàn)原理

2.1 方案總覽

測試環(huán)境路由的樣例實(shí)現(xiàn)以下圖為例,一共有兩個(gè)測試環(huán)境以及一個(gè)基線環(huán)境。流量從端到端會依次經(jīng)過以下組件:App -> 網(wǎng)關(guān) -> 用戶中心 -> 積分中心 -> 活動中心。

a9a173e4-5086-11ed-a3b6-dac502259ad0.png圖:測試環(huán)境路由示意圖

根據(jù)上一節(jié)服務(wù)路由章節(jié)所述,為了達(dá)到測試環(huán)境路由的能力,開發(fā)工作需要做三件事情:

服務(wù)實(shí)例染色(標(biāo)識實(shí)例屬于哪個(gè)測試環(huán)境)

流量染色(標(biāo)識請求應(yīng)該被轉(zhuǎn)發(fā)到哪個(gè)測試環(huán)境)

服務(wù)路由 a. 網(wǎng)關(guān)根據(jù)請求的目標(biāo)測試環(huán)境標(biāo)簽轉(zhuǎn)發(fā)到對應(yīng)的目標(biāo)測試環(huán)境的用戶中心。 b. 服務(wù)調(diào)用時(shí),優(yōu)先轉(zhuǎn)發(fā)到同測試環(huán)境下的目標(biāo)服務(wù)實(shí)例,如果同測試環(huán)境下沒有服務(wù)實(shí)例則轉(zhuǎn)發(fā)到基線環(huán)境。

以下三小節(jié),將會詳細(xì)介紹這三部分的原理。

2.2 服務(wù)實(shí)例染色

在多測試環(huán)境的場景中,需要對每個(gè)測試環(huán)境部署的實(shí)例進(jìn)行區(qū)分,因此需要在實(shí)例上打 的標(biāo)簽。Spring Cloud Tencent 一共支持三種服務(wù)實(shí)例染色方式。

方式一:配置文件

在 Spring Boot 的 application.yml 配置文件里配置以下內(nèi)容即可實(shí)現(xiàn)染色:

spring:
cloud:
tencent:
metadata:
content:
idc:shanghai
env:f1

Spring Cloud Tencent 應(yīng)用在啟動時(shí),讀取配置文件并解析出 idc=shanghai 和 env=f1 標(biāo)簽信息。

如果以上配置文件放在項(xiàng)目源碼里,要實(shí)現(xiàn)不同的實(shí)例具有不同的標(biāo)簽值則需要打不同包。可以通過以下兩種方式實(shí)現(xiàn)同一個(gè)運(yùn)行包設(shè)置不同的標(biāo)簽值:

通過 -D 啟動參數(shù)覆蓋,例如:-Dspring.cloud.tencent.metadata.content.idc=guangzhou

通過 Spring Boot 標(biāo)準(zhǔn)方式,把a(bǔ)pplication.yml外掛本地磁盤上

方式二:環(huán)境變量

環(huán)境變量在容器場景下非常方便,Spring Cloud Tencent 約定了前綴為 SCT_METADATA_CONTENT_ 的環(huán)境變量為實(shí)例的標(biāo)簽信息,例如:

SCT_METADATA_CONTENT_IDC=shanghai

SCT_METADATA_CONTENT_ENV=f1

Spring Cloud Tencent 應(yīng)用在啟動時(shí),自動會讀取環(huán)境變量并解析出 IDC=shanghai 和 ENV=f1 標(biāo)簽信息。

方式三:自定義實(shí)現(xiàn) SPI

前面兩種方式為 Spring Cloud Tencent 內(nèi)置的方式,但是不一定符合每個(gè)生產(chǎn)項(xiàng)目的規(guī)范,因此 Spring Cloud Tencent 還提供了一種允許開發(fā)者自定義標(biāo)簽 Provider 的方式。例如以下兩種實(shí)踐場景:

把實(shí)例標(biāo)簽放到機(jī)器上的某一個(gè)配置文件里,例如 /etc/metadata。

應(yīng)用啟動時(shí),調(diào)用公司的 CMDB 接口獲取元信息。

這種場景下,只要實(shí)現(xiàn) InstanceMetadataProvider SPI 擴(kuò)展即可。

2.3 流量染色

流量染色即為每個(gè)請求打上目標(biāo)測試環(huán)境標(biāo)簽,路由轉(zhuǎn)發(fā)時(shí)根據(jù)請求標(biāo)簽匹配目標(biāo)服務(wù)實(shí)例。而流量染色可以分為以下幾種方式:

方式一:靜態(tài)染色

2.2 小節(jié)介紹了可以為服務(wù)實(shí)例設(shè)置一系列的標(biāo)簽信息,例如 idc=shanghai、env=f1 等。在有些場景下,期望所有經(jīng)過當(dāng)前實(shí)例的請求都帶上當(dāng)前實(shí)例的標(biāo)簽信息。例如經(jīng)過 env=f1 的實(shí)例的請求都攜帶 env=f1 的標(biāo)簽信息。

服務(wù)實(shí)例染色有三種方式,對應(yīng)的定義哪些標(biāo)簽需要作為請求標(biāo)簽透傳到鏈路上也有三種方式,核心思想就是定義需要全鏈路傳遞的標(biāo)簽鍵值對的鍵列表。

通過配置文件的 spring.cloud.tencent.metadata.content.transitive=["idc", "env"] 配置項(xiàng)指定

通過 SCT_METADATA_CONTENT_TRANSITIVE=IDC,ENV 環(huán)境變量指定

通過實(shí)現(xiàn) InstanceMetadataProvider#getTransitiveMetadataKeys() 方法指定

方式二:動態(tài)染色

靜態(tài)染色是把服務(wù)實(shí)例的某些標(biāo)簽作為請求標(biāo)簽,服務(wù)實(shí)例標(biāo)簽相對靜態(tài),應(yīng)用啟動后初始化一次之后就不再變更。但是在實(shí)際的應(yīng)用場景下,不同的請求往往需要設(shè)置不同的標(biāo)簽信息。此時(shí)則需要通過動態(tài)染色的能力。

為請求動態(tài)染色也非常簡單,只需增加以 X-Polaris-Metadata-Transitive- 為前綴的 HTTP 請求頭即可,例如:X-Polaris-Metadata-Transitive-featureenv=f1。這樣 featureenv=f1 就能夠作為請求標(biāo)簽在鏈路上透傳。

方式三:網(wǎng)關(guān)流量染色

網(wǎng)關(guān)常常作為流量的入口或者中轉(zhuǎn)站。經(jīng)過網(wǎng)關(guān)的請求,可以根據(jù)某些染色規(guī)則為請求增加標(biāo)簽信息。例如滿足請求參數(shù) uid=1000 請求打上 featureenv=f1 標(biāo)簽。

網(wǎng)關(guān)流量染色是非常實(shí)用的能力,在 Spring Cloud Tencent 里實(shí)現(xiàn)了非常靈活基于染色規(guī)則的 Spring Cloud Gateway 染色插件。例如以下染色規(guī)則可以實(shí)現(xiàn)為 uid=1000 的請求打上 featureenv=f1 標(biāo)簽、uid=1001 的請求打上 featureenv=f2 標(biāo)簽。更詳細(xì)的染色規(guī)則,可以參考文檔。

{
"rules":[
{
"conditions":[
{
"key":"${http.query.uid}",
"values":["1000"],
"operation":"EQUALS"
}
],
"labels":[
{
"key":"featureenv",
"value":"f1"
}
]
},
{
"conditions":[
{
"key":"${http.query.uid}",
"values":["1001"],
"operation":"EQUALS"
}
],
"labels":[
{
"key":"featureenv",
"value":"f2"
}
]
}
]
}

同時(shí) Spring Cloud Tencent 也預(yù)留了 TrafficStainer SPI ,用戶可以實(shí)現(xiàn)自定義流量染色插件。

2.4 Spring Cloud Tencent 路由功能原理

北極星提供了非常完善的服務(wù)治理能力,上層的服務(wù)框架基于北極星原生 SDK 就能快速實(shí)現(xiàn)強(qiáng)大的服務(wù)治理能力。Spring Cloud Tencent 就是在北極星的基礎(chǔ)上實(shí)現(xiàn)了服務(wù)路由能力。

北極星服務(wù)路由原理

北極星服務(wù)路由實(shí)現(xiàn)原理并不復(fù)雜,如下圖所示,從注冊中心獲取到所有實(shí)例信息,再經(jīng)過一系列的 RouterFilter 插件過濾出滿足條件的實(shí)例集合。

ab224e3c-5086-11ed-a3b6-dac502259ad0.png圖:北極星服務(wù)路由執(zhí)行鏈

在多測試環(huán)境場景下主要用到了 MetadataRouter (元數(shù)據(jù)路由)插件,此插件核心能力是根據(jù)請求的標(biāo)簽完全匹配服務(wù)實(shí)例的標(biāo)簽。

例如請求有兩個(gè)標(biāo)簽 key1=value1和 key2=value2,MetadataRouter 則會篩選出所有實(shí)例中包含同時(shí)滿足 key1=value1 和 key2=value2 的服務(wù)實(shí)例。在多測試環(huán)境場景下,Spring Cloud Tencent 缺省使用 featureenv 標(biāo)簽,通過 featureenv 標(biāo)簽篩選出屬于同一個(gè)測試環(huán)境的服務(wù)實(shí)例。

Spring Cloud Tencent 服務(wù)路由原理

Spring Cloud Tencent 實(shí)現(xiàn)路由核心分成兩個(gè)部分:

擴(kuò)展 RestTemplate 、 Feign、SCG 獲取請求的標(biāo)簽信息并塞到 RouterContext (路由信息上下文)里。

擴(kuò)展 Spring Cloud 負(fù)載均衡組件(Hoxton 版本之前為 Ribbon,2020版本之后為 Spring Cloud LoadBalancer),在擴(kuò)展的實(shí)現(xiàn)里調(diào)用北極星的服務(wù)路由 API 實(shí)現(xiàn)服務(wù)實(shí)例過濾。

擴(kuò)展部分邏輯較為復(fù)雜,感興趣的讀者可以參考 spring-cloud-starter-tencent-polaris-router 模塊源碼。

三、測試環(huán)境路由用戶操作指引

在上一節(jié)中詳細(xì)介紹了測試環(huán)境路由的實(shí)現(xiàn)原理,這一節(jié)則詳細(xì)介紹站在用戶的視角需要操作的內(nèi)容。

通過 Spring Cloud Tencent 實(shí)現(xiàn)流量的測試環(huán)境路由非常簡單,核心包含三步:

服務(wù)增加測試環(huán)境路由插件依賴

部署的實(shí)例打上環(huán)境標(biāo)簽

為請求流量打上環(huán)境標(biāo)簽

完成以上三個(gè)步驟即可。

3.1 添加測試環(huán)境路由插件依賴

Spring Cloud Tencent 中的 spring-cloud-tencent-featureenv-plugin 模塊閉環(huán)了測試環(huán)境路由全部能力,所有服務(wù)只需要添加該依賴即可引入測試環(huán)境路由能力。

3.2 服務(wù)實(shí)例打上環(huán)境標(biāo)簽

spring-cloud-tencent-featureenv-plugin 默認(rèn)以 featureenv 標(biāo)簽作為匹配標(biāo)簽,用戶也可以通過系統(tǒng)內(nèi)置的 system-feature-env-router-label=custom_feature_env_key 標(biāo)簽來指定測試環(huán)境路由使用的標(biāo)簽鍵。以下三種方式以默認(rèn)的 featureenv 作為示例。

方式一:配置文件

在服務(wù)實(shí)例的配置文件中添加配置,如在 bootstrap.yml添加如下所示即可:

spring:
cloud:
tencent:
metadata:
content:
featureenv:f1#f1替換為測試環(huán)境名稱

方式二:環(huán)境變量

在服務(wù)實(shí)例所在的操作系統(tǒng)中添加環(huán)境變量也可進(jìn)行打標(biāo),例如:SCT_METADATA_CONTENT_featureenv=f1

方式三:SPI 方式

自定義實(shí)現(xiàn) InstanceMetadataProvider#getMetadata() 方法的返回值里里包含 featureenv 即可。

基線環(huán)境標(biāo)簽值

注意,基線環(huán)境部署的服務(wù)實(shí)例不需要設(shè)置 featureenv 標(biāo)簽,表明其不屬于任何測試環(huán)境,才可在請求沒有匹配到對應(yīng)測試環(huán)境的時(shí)候,匹配到基線環(huán)境。

3.3 流量染色

方式一:客戶端染色 (推薦

如下圖所示,在客戶端發(fā)出的 HTTP 請求里,新增 X-Polaris-Metadata-Transitive-featureenv=f1 請求頭即可實(shí)現(xiàn)染色。該方式是讓開發(fā)者在請求創(chuàng)建的時(shí)候根據(jù)業(yè)務(wù)邏輯進(jìn)行流量染色。

ab5195f2-5086-11ed-a3b6-dac502259ad0.png圖:客戶端染色示意圖

方式二:網(wǎng)關(guān)動態(tài)染色(推薦)

動態(tài)染色是開發(fā)者配置一定的染色規(guī)則,讓流量經(jīng)過網(wǎng)關(guān)時(shí)自動染色,使用起來相當(dāng)方便。例如把 uid=1 用戶的請求都轉(zhuǎn)發(fā)到 f1 環(huán)境,把 uid=0 用戶的請求都轉(zhuǎn)發(fā)到 f2 環(huán)境。只需要配置一條染色規(guī)則即可實(shí)現(xiàn)。

ac679c52-5086-11ed-a3b6-dac502259ad0.png圖:網(wǎng)關(guān)動態(tài)染色示意圖

Spring Cloud Tencent 通過實(shí)現(xiàn) Spring Cloud Gateway 的 GlobalFilter 來實(shí)現(xiàn)流量染色插件,開發(fā)者只需要添加 spring-cloud-tencent-gateway-plugin 依賴,并在配置文件中打開染色插件開關(guān)(spring.cloud.tencent.plugin.scg.staining.enabled=true)即可引入流量染色能力。

方式三:網(wǎng)關(guān)靜態(tài)染色

往請求中加入固定的 Header 是網(wǎng)關(guān)最常見的插件,如下圖所示。可以在每個(gè)環(huán)境部署一個(gè)網(wǎng)關(guān),所有經(jīng)過網(wǎng)關(guān)的請求都增加 X-Polaris-Metadata-Transitive-featureenv=f1 請求頭即可。此種方式需要每個(gè)環(huán)境部署網(wǎng)關(guān),成本高,所以使用頻率相對較低。

ac9e2e84-5086-11ed-a3b6-dac502259ad0.png圖:網(wǎng)關(guān)靜態(tài)染色示意圖

完成以上操作步驟即可實(shí)現(xiàn)測試環(huán)境路由,讀者可運(yùn)行 Spring Cloud Tencent 下 polaris-router-featureenv-example 完整體驗(yàn)。

四、總結(jié)

測試環(huán)境路由在微服務(wù)架構(gòu)系統(tǒng)的開發(fā)階段是非常實(shí)用的功能,能夠大大降低測試環(huán)境的維護(hù)成本、資源成本,同時(shí)能夠極大的提高研發(fā)效率。通過操作指引的章節(jié)可以看出通過 Spring Cloud Tencent 實(shí)現(xiàn)測試環(huán)境路由非常簡單的,只需要部署的服務(wù)實(shí)例增加相應(yīng)的環(huán)境標(biāo)簽以及在請求頭中增加一個(gè)標(biāo)簽即可。

業(yè)界常見的測試環(huán)境路由實(shí)現(xiàn)方案往往需要下發(fā)路由規(guī)則給鏈路上的服務(wù),從而實(shí)現(xiàn)路由能力。但是通過北極星的元數(shù)據(jù)路由能力,整個(gè)方案里無需下發(fā)任何路由規(guī)則,只需要在實(shí)例設(shè)置相應(yīng)的標(biāo)簽信息即可,操作成本非常低。

如果項(xiàng)目剛好使用 Spring Cloud Gateway 作為網(wǎng)關(guān),那么集成 Spring Cloud Tencent 里的網(wǎng)關(guān)染色插件能夠進(jìn)一步降低流量染色成本,客戶端無需做任何事情,只需要配置網(wǎng)關(guān)染色規(guī)則即可實(shí)現(xiàn)流量染色。

目前 Spring Cloud Tencent 主要實(shí)現(xiàn)了微服務(wù)之間調(diào)用流量的測試環(huán)境路由能力,不涉及消息隊(duì)列、任務(wù)調(diào)度的測試環(huán)境路由能力。

五、歡迎共建

如果您所在項(xiàng)目正在使用 Spring Cloud 框架,并且

沉淀出了非常實(shí)用的通用插件能力和場景化解決方案

目前正遇到一些落地難題

對 Spring Cloud Tencent 項(xiàng)目感興趣

非常歡迎您跟我們一起打磨更多實(shí)用且通用的能力,共建滿足各類實(shí)際生產(chǎn)場景使用的微服務(wù)開發(fā)框架。您的一個(gè)建議、Issue、Pull Request 甚至只是一個(gè)小小的 Star 都是對 Spring Cloud Tencent 社區(qū)極大的支持。

Github 地址:https://github.com/Tencent/spring-cloud-tencent

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 路由
    +關(guān)注

    關(guān)注

    0

    文章

    278

    瀏覽量

    41836
  • spring
    +關(guān)注

    關(guān)注

    0

    文章

    340

    瀏覽量

    14338
  • Cloud
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    5353

原文標(biāo)題:如何解決Spring Cloud下測試環(huán)境路由問題

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何用ACM簡化你的Spring Cloud微服務(wù)環(huán)境配置管理

    務(wù)環(huán)境配置管理的方案,并會簡單比較一ACM與Spring Cloud Config方案的優(yōu)劣。點(diǎn)此查看原文:[url=]http://click.aliyun.com/m/41595
    發(fā)表于 02-02 14:18

    EDAS再升級!全面支持Spring Cloud應(yīng)用

    。服務(wù)器的不斷增加對于運(yùn)維人員也是一個(gè)極大的挑戰(zhàn)。開發(fā)、測試、線上環(huán)境差異性,交付流程越來越復(fù)雜,新應(yīng)用上線不僅效率低,而且風(fēng)險(xiǎn)高。為了優(yōu)化Spring Cloud微服務(wù)體驗(yàn),就必須補(bǔ)
    發(fā)表于 02-02 15:20

    使用阿里云ACM簡化你的Spring Cloud微服務(wù)環(huán)境配置管理

    務(wù)環(huán)境配置管理的方案,并會簡單比較一ACM與Spring Cloud Config方案的優(yōu)劣。配置的環(huán)境屬性毫無疑問,在系統(tǒng)持續(xù)交付的過程
    發(fā)表于 07-04 17:16

    Dubbo Cloud Native 之路的實(shí)踐與思考

    發(fā)現(xiàn)的能力,就功能性而言,Zuul 和 Gateway 自身并不具備這樣的特性,需要搭配 Eureka 這樣組件,它們更像服務(wù)路由器的角色。分布式配置左邊和中間的四種技術(shù)均為 Spring Cloud
    發(fā)表于 07-05 16:05

    Spring Cloud Config公共配置解決方案

    Spring Cloud Config 多服務(wù)公共配置
    發(fā)表于 08-30 09:05

    使用Spring Cloud與Docker實(shí)戰(zhàn)微服務(wù)

    使用Spring Cloud與Docker實(shí)戰(zhàn)微服務(wù)
    發(fā)表于 09-09 08:31 ?7次下載
    使用<b class='flag-5'>Spring</b> <b class='flag-5'>Cloud</b>與Docker實(shí)戰(zhàn)微服務(wù)

    Spring Cloud Function基于Spring Boot的函數(shù)計(jì)算框架

    ./oschina_soft/spring-cloud-function.zip
    發(fā)表于 05-13 10:16 ?0次下載
    <b class='flag-5'>Spring</b> <b class='flag-5'>Cloud</b> Function基于<b class='flag-5'>Spring</b> Boot的函數(shù)計(jì)算框架

    RabbitRpc基于spring cloud的微服務(wù)rpc調(diào)用

    ./oschina_soft/gitee-spring-cloud-rabbitrpc.zip
    發(fā)表于 06-14 09:51 ?1次下載
    RabbitRpc基于<b class='flag-5'>spring</b> <b class='flag-5'>cloud</b>的微服務(wù)rpc調(diào)用

    Spring Cloud Gateway服務(wù)網(wǎng)關(guān)的部署與使用詳細(xì)教程

    Gateway 網(wǎng)關(guān)的搭建: 3、Spring Cloud Gateway 配置項(xiàng)的說明: 4、Gateway 集成 nacos 注冊中心實(shí)現(xiàn)服務(wù)發(fā)現(xiàn): 5、Gateway 整合 Apollo 實(shí)現(xiàn)動態(tài)路由配置
    的頭像 發(fā)表于 10-11 17:46 ?1739次閱讀

    Spring Cloud Tencent發(fā)布最新匹配版本!

    無論北極星還是 Spring Cloud Tencent 當(dāng)前都在積極的修復(fù) Bug、完善用戶體驗(yàn)、迭代新功能。所以 Spring Cloud Tencent 也第一時(shí)間適配了
    的頭像 發(fā)表于 12-09 15:34 ?1094次閱讀

    Spring Cloud 2022.0.0正式發(fā)布

    由于 Spring 現(xiàn)在提供了他們自己實(shí)現(xiàn)的接口 HTTP 客戶端解決方案,因此從 2022.0.0 開始,Spring Cloud OpenFeign 已到達(dá)特性完成狀態(tài)。這意味著 Spri
    的頭像 發(fā)表于 12-22 10:39 ?719次閱讀

    Spring Cloud 】基于微服務(wù)架構(gòu)的智慧工地監(jiān)管平臺源碼帶APP

    技術(shù)架構(gòu):微服務(wù) 開發(fā)語言:Java 開發(fā)工具:Idea 前端框架:Vue 后端框架:Spring Cloud 數(shù) 據(jù) 庫:MySql 移 動 端:UniApp
    的頭像 發(fā)表于 08-28 11:10 ?631次閱讀
    【<b class='flag-5'>Spring</b> <b class='flag-5'>Cloud</b> 】基于微服務(wù)架構(gòu)的智慧工地監(jiān)管平臺源碼帶APP

    Spring Cloud :打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān)

    Spring Cloud Gateway是一個(gè)基于Spring Framework 5和Project Reactor的反應(yīng)式編程模型的微服務(wù)網(wǎng)關(guān)。它提供了豐富的功能,包括動態(tài)路由、請
    的頭像 發(fā)表于 10-22 10:03 ?520次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Cloud</b> :打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān)

    dubbo和spring cloud區(qū)別

    Dubbo和Spring Cloud是兩個(gè)非常流行的微服務(wù)框架,各有自己的特點(diǎn)和優(yōu)勢。在本文中,我們將詳細(xì)介紹Dubbo和Spring Cloud的區(qū)別。 1.架構(gòu)設(shè)計(jì): Dubbo是
    的頭像 發(fā)表于 12-04 14:47 ?1675次閱讀

    Spring Cloud Gateway網(wǎng)關(guān)框架

    SpringCloud Gateway功能特征如下: (1) 基于Spring Framework 5, Project Reactor 和 Spring Boot 2.0 進(jìn)行構(gòu)建; (2) 動態(tài)路由:能夠匹配任何請求屬性;
    的頭像 發(fā)表于 08-22 09:58 ?482次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Cloud</b> Gateway網(wǎng)關(guān)框架
    主站蜘蛛池模板: 91九色视频无限观看免费| yellow免费观看直播| 国产精品A8198V久久A片| 泷泽萝拉首部av| 亚洲欧美一级久久精品| 粗壮挺进邻居人妻无码| 理论片午午伦夜理片久久| 亚洲 欧美 国产 综合久久| 爱如潮水3免费观看日本| 久久永久影院免费| 亚洲无遮挡| 国产亚洲一区二区三区啪| 伸到同桌奶罩里捏她胸h| 狠狠色狠狠色综合日日2019| 特大黑人娇小亚洲女mp4| av影音先锋影院男人站| 久久是热这里只有精品| 亚洲欧美高清在线精品一区| 国产成人免费高清在线观看| 日本湿姝在线观看| 办公室激情在线观看| 强开少妇嫩苞又嫩又紧九色| 99久久国产综合精品成人影院| 免费看黄的片多多APP下载| 中文视频在线| 美女被抽插到哭内射视频免费| 2020无码最新国产在线观看| 久久人妻AV一区二区软件| 在线自拍综合亚洲欧美| 久久亚洲精品AV成人无码| 4388成人| 欧美黑人经典片免费观看| 办公室沙发口爆12P| 色播成人影院| 国产欧美无码亚洲| 亚洲综合春色另类久久| 久久青草费线频观看国产| 99E久热只有精品8在线直播| 欧美丰满白嫩bbxx| 国产精品 日韩精品 欧美| 墨西哥美女主播|