springboot+nacos+gateway實現(xiàn)灰度發(fā)布的實例詳解
概要
如何在微服務(wù)實現(xiàn)灰度發(fā)布呢?
- 灰度發(fā)布(又名金絲雀發(fā)布)是指在黑與白之間,能夠平滑過渡的一種發(fā)布方式。在其上可以進行A/B testing,即讓一部分用戶繼續(xù)用產(chǎn)品特性A,一部分用戶開始用產(chǎn)品特性B,如果用戶對B沒有什么反對意見,那么逐步擴大范圍,把所有用戶都遷移到B上面來。
有什么功能
首先我是自定義了一個灰度發(fā)布的sdk,引入該包可以實現(xiàn),指定服務(wù)灰度發(fā)布,并指定灰度權(quán)重
指定權(quán)重后,網(wǎng)關(guān)調(diào)用時會根據(jù)權(quán)重打到灰度服務(wù),當(dāng)然調(diào)用的時候需要指定灰度版本
技術(shù)細節(jié)
1.在網(wǎng)關(guān)中引入灰度發(fā)布包
<dependency>
<groupId>com.zbm.gray</groupId>
<artifactId>springboot-gray-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>2.網(wǎng)關(guān)配置灰度策略
gray:
loadbalancer:
enabled: true
weight: 20 //灰度權(quán)重20%3.灰度服務(wù)A
gray:
loadbalancer:
enabled: true
version: 2 //灰度版本號4.網(wǎng)關(guān)接口調(diào)用
@Autowired
@Qualifier("newRestTemplate")
private RestTemplate restTemplate;
@GetMapping("/testGray")
public String testGray(){
MultiValueMap<String, String> headers=new HttpHeaders();
headers.add("version","2");
HttpEntity<?> requestEntity = new HttpEntity<>(headers);
ResponseEntity<String> exchange = restTemplate.exchange("http://test-gray/api/v1/test", HttpMethod.GET, requestEntity, String.class);
return exchange.getBody();
}說明:如果調(diào)用過程中不傳遞version,那么不會調(diào)用到灰度服務(wù)上
5.原理說明
首先我們需要在灰度服務(wù)引入灰度sdk,然后發(fā)布,我們正常服務(wù)不需要引入,在網(wǎng)關(guān)引入并配置灰度策略,那么會根據(jù)負載均衡策略和我們配置的權(quán)重選擇服務(wù)。
小結(jié)
具體示例代碼可見github:https://github.com/zbmzbm/gray-project
到此這篇關(guān)于springboot+nacos+gateway實現(xiàn)灰度發(fā)布的實例詳解的文章就介紹到這了,更多相關(guān)springboot 灰度發(fā)布內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 數(shù)據(jù)結(jié)構(gòu)哈希算法之哈希桶方式解決哈希沖突
實際上哈希桶是解決哈希表沖突的一種方法。常見的解決沖突的兩種方法:分離鏈接法、開放定址法。其中使用分離鏈接法,得到的對應(yīng)關(guān)系即為哈希桶2022-02-02
Java?file.delete刪除文件失敗,Windows磁盤出現(xiàn)無法訪問的文件問題
這篇文章主要介紹了Java?file.delete刪除文件失敗,Windows磁盤出現(xiàn)無法訪問的文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
詳解Java中super的幾種用法并與this的區(qū)別
這篇文章主要介紹了Java中super的幾種用法并與this的區(qū)別,有需要的朋友可以參考一下2013-12-12
Java System.getProperty()-獲取系統(tǒng)參數(shù)案例詳解
這篇文章主要介紹了Java System.getProperty()-獲取系統(tǒng)參數(shù)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08

