日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

架构设计:微服务模式下,实现灰度发布模式

發布時間:2025/3/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 架构设计:微服务模式下,实现灰度发布模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文源碼:GitHub·點這里 || GitEE·點這里

一、基本邏輯

請求通過8001服務,在灰度規則中,會讀取下次請求的服務列表,根據版本號參數規則,選中路由的服務。

配置版本號,區分灰度版本和默認正常版本;
自定義攔截器,管理版本號或其他標識參數在請求中傳遞;
自定義服務選中策略,基于版本標識路由服務;
如果灰度服務不存在,則基于規則選中默認服務;

二、版本配置

在node12-server集群配置兩個服務:在8002端口配置版本v7.0.0,在8003端口配置版本v7.0.1,用來測試灰度版本選擇。

8002服務

eureka:metadata-map:version: v7.0.0

8003服務

eureka:metadata-map:version: v7.0.1

Eureka注冊中心,服務列表:

三、參數傳遞

微服務下通過實現RequestInterceptor接口,管理服務之間的Feign請求攔截器,在請求路由到服務前,可以對請求執行一些處理操作,常見操作例如傳遞版本號,用戶Token等請求頭等屬性。

/*** 請求攔截器*/ @Component public class GrayReqInterceptor implements RequestInterceptor {private static final String VERSION_KEY = "versionId" ;/*** 處理請求頭參數攜帶問題*/@Overridepublic void apply(RequestTemplate requestTemplate) {HttpServletRequest request =((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();String versionId = request.getHeader(VERSION_KEY);if (StringUtils.isNotEmpty(versionId)){requestTemplate.header(VERSION_KEY,versionId);}} }

這里就傳遞一個versionId參數,作為下次請求路由服務的核心標識。

四、灰度規則

在請求頭的Header中添加要訪問的版本號,如果有匹配的服務,則路由所有請求的灰度服務,如果沒有則返回默認服務。

@Configuration public class GrayRule extends ZoneAvoidanceRule {@Beanpublic GrayReqInterceptor grayReqInterceptor(){return new GrayReqInterceptor();}private static final String VERSION_KEY = "versionId" ;@Overridepublic Server choose(Object key) {HttpServletRequest request =((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();String versionId = request.getHeader(VERSION_KEY);// 服務匹配List<Server> serverList = this.getPredicate().getEligibleServers(this.getLoadBalancer().getAllServers(), key);Server toServer = getServer(serverList,versionId);if (toServer != null){return toServer ;} else {return getServer(serverList,GrayConstant.VERSION_DEF);}}private Server getServer (List<Server> serverList,String version){Server toServer = null ;for (Server server : serverList) {Map<String, String> metadata = ((DiscoveryEnabledServer) server).getInstanceInfo().getMetadata();String metaVersion = metadata.get("version");if (!StringUtils.isEmpty(metaVersion)) {if (metaVersion.equals(version)) {toServer = server;}}}return toServer ;} }

在實際的過程中,服務的選擇是十分復雜的,如果沒有灰度服務,需要根據實際情況制定服務匹配的規則,例如根據響應時間,或者默認輪詢等。

更需要注意的一點是,一旦使用底層API的二次封裝,項目的整體就會受到框架版本升級的影響,需要持續關注框架的環境。

五、測試流程

1.啟動相關服務,觀察注冊中心服務列表;

2.請求8001服務的接口,并帶上版本號;

3.觀察不同版本號的路由服務;

4.不攜帶版本號,觀察默認服務選擇;

六、源代碼地址

GitHub地址:知了一笑 https://github.com/cicadasmile/spring-cloud-base GitEE地址:知了一笑 https://gitee.com/cicadasmile/spring-cloud-base

推薦閱讀:編程體系整理

序號項目名稱GitHub地址GitEE地址推薦指數
01Java描述設計模式,算法,數據結構GitHub·點這里GitEE·點這里☆☆☆☆☆
02Java基礎、并發、面向對象、Web開發GitHub·點這里GitEE·點這里☆☆☆☆
03SpringCloud微服務基礎組件案例詳解GitHub·點這里GitEE·點這里☆☆☆
04SpringCloud微服務架構實戰綜合案例GitHub·點這里GitEE·點這里☆☆☆☆☆
05SpringBoot框架基礎應用入門到進階GitHub·點這里GitEE·點這里☆☆☆☆
06SpringBoot框架整合開發常用中間件GitHub·點這里GitEE·點這里☆☆☆☆☆
07數據管理、分布式、架構設計基礎案例GitHub·點這里GitEE·點這里☆☆☆☆☆
08大數據系列、存儲、組件、計算等框架GitHub·點這里GitEE·點這里☆☆☆☆☆

總結

以上是生活随笔為你收集整理的架构设计:微服务模式下,实现灰度发布模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99热亚洲精品 | 久久91av| 好吊色欧美一区二区三区视频 | 亚洲成人自拍视频 | 亚洲无人区小视频 | 成人av免费在线 | 日本成人三级电影 | 一区二区免费视频 | 一区二区三区小视频 | 日本黄色一级视频 | 国产在线网 | 婷婷综合激情 | 欧美日韩一区二区在线视频 | 欧洲亚洲成人 | 国产精品视频亚洲 | 一级片一区二区三区 | 天天干天天色天天 | 久久先锋 | 在线免费中文字幕 | 久热精品在线观看 | 偷拍女澡堂一区二区三区 | 欧美成人精品一区二区三区在线观看 | 一级特黄性色生活片 | 欧美日韩精品在线播放 | 美女免费黄视频 | 国产成人精品免费 | 久久亚洲国产 | 午夜网 | 又粗又猛又爽又黄少妇视频网站 | 午夜免费片 | av天天堂| 五月天婷婷激情 | 欧美精品久久久久久久久老牛影院 | 特黄一级片 | 中文字幕不卡一区 | 国产精品制服丝袜 | 国产精品美女久久久久av超清 | 涩涩网站在线 | 夜色网 | av撸撸在线 | 久久偷看各类wc女厕嘘嘘偷窃 | 欧美成年人网站 | 国产吞精囗交免费视频 | 国产欧美一区二区三区在线看 | www.色人阁.com | 亚洲黄片一区二区 | 亚洲一区二区观看播放 | 羞羞免费视频 | 日韩三级网 | 91精品国产综合久久久蜜臀粉嫩 | 国产片网站 | 亚洲www色 | 国产美女无遮挡永久免费观看 | 亚洲成人基地 | 99自拍偷拍视频 | 成人区人妻精品一熟女 | 蜜臀99久久精品久久久久小说 | 日韩中文字幕精品视频 | 黄色网页大全 | 日韩 欧美 亚洲 国产 | 欧美日一区二区 | 中文不卡视频 | 亚洲精品一区二区18漫画 | 天天摸天天看 | 中文字幕乱码在线人视频 | chinese麻豆gay勾外卖 | 日本激情视频 | 久久受| 青青操精品 | 天天天操操操 | 人妻精品久久久久中文 | 久久久久久久久久久久久久久久久久 | 欧美午夜精品一区二区三区电影 | 日韩经典中文字幕 | 91精品人妻一区二区 | 日日碰 | 小柔的淫辱日记(h | 天堂va蜜桃一区二区三区漫画版 | 四虎8848精品成人免费网站 | 欧洲一区二区三区 | 久久久一本 | 第四色视频 | 精品国产免费av | 国产精品中文字幕在线 | 激情欧美一区二区三区 | 免费成人黄色av | 久久精品欧美一区二区 | a视频在线观看免费 | 日韩一区二区久久 | 孕妇疯狂做爰xxxⅹ 国产精品乱码久久久久久 99久久久成人国产精品 | av中文字幕一区二区 | 打开免费观看视频在线 | 美女性高潮视频 | 91天天综合 | 久久二| 欧美群妇大交乱 | 色臀 | 香蕉黄色片| 五月天六月婷婷 |