javascript
SpringCloudGateway实现金丝雀发布_05
接上一篇:SpringCloudGateway 集成 nacos 整合實現(xiàn)動態(tài)路由
文章目錄
- 一、啟動服務
- 1. 啟動Gateway-Serv模塊服務
- 2. 啟動auth-serv認證授權(quán)服務
- 3. 啟動product-serv服務
- 4. 啟動product-serv服務2
- 二、修改nacos配置
- 2.1. 配置改造
- 2.2. 配置發(fā)布
- 三、測試驗證
- 3.1. 訪問產(chǎn)品模塊
- 3.2. 獲取toeken
- 3.3. 攜帶toekn訪問產(chǎn)品模塊
- 3.4. 增加訪問次數(shù)
- 四、不聯(lián)網(wǎng)大廠產(chǎn)品發(fā)布策略
- 4.1. 藍綠發(fā)布
- 4.2. 金絲雀發(fā)布
- 4.3. 灰度發(fā)布
- 4.4. A/B測試
- 4.5. 測試發(fā)布策略區(qū)別
一、啟動服務
1. 啟動Gateway-Serv模塊服務
2. 啟動auth-serv認證授權(quán)服務
3. 啟動product-serv服務
4. 啟動product-serv服務2
端口由9000改為9001
server:port: 9001 spring:cloud:nacos:discovery:service: product-servserver-addr: localhost:8848controller訪問改造
將IPhone 12改為我是新版本
開啟一個應用以不同端口啟動
啟動product-serv服務9001
二、修改nacos配置
2.1. 配置改造
原
spring:cloud:gateway:routes:- id: producturi: lb://product-servpredicates:- Host=product.gblfy.com**- id: authuri: lb://auth-servpredicates:- Path=/oauth/token- id: skilluri: http://localhost:13000predicates:- Path=/skilldatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/auth-serv?characterEncoding=UTF-8&serverTimezone=GMT%2B8username: rootpassword: 123456現(xiàn)配置
spring:cloud:gateway:routes:- id: product_v1uri: lb://localhost:9000/predicates:- Path=/product/*- Weight=service1, 95- id: product_v2uri: lb://localhost:9001/predicates:- Path=/product/*- Weight=service1, 5- id: authuri: lb://auth-servpredicates:- Path=/oauth/tokendatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/auth-serv?characterEncoding=UTF-8&serverTimezone=GMT%2B8username: rootpassword: 1234562.2. 配置發(fā)布
三、測試驗證
3.1. 訪問產(chǎn)品模塊
不請求auth-serv模塊獲取otken,直接通過網(wǎng)關(guān)訪問產(chǎn)品模塊
從上圖可以看出訪問需要認證授權(quán)
3.2. 獲取toeken
http://localhost:8081/oauth/token
通過認證授權(quán)中心獲取toekn
3.3. 攜帶toekn訪問產(chǎn)品模塊
攜帶toekn通過網(wǎng)關(guān)服務訪問產(chǎn)品模塊
http://product.gblfy.com:8081/product/1
從圖中可以看出,獲取token后,通過網(wǎng)關(guān)服務可以正常請求產(chǎn)品模塊,并有響應報文。
3.4. 增加訪問次數(shù)
會發(fā)現(xiàn)95%的請求會請求老版本,5%請求會請求新的版本!
四、不聯(lián)網(wǎng)大廠產(chǎn)品發(fā)布策略
4.1. 藍綠發(fā)布
4.2. 金絲雀發(fā)布
從圖中可以看到,將發(fā)布區(qū)域的一小部分區(qū)域定義為金絲雀區(qū)域,通過線上運行服務(少量節(jié)點)中加入少量新版本的服務,也就是我們所說的金絲雀這塊區(qū)域,然后從少量的版本中,快速的得到一個反饋,我們將部分的流量導入到小部分的金絲雀區(qū)域版本當中,來快速得到反饋,嘗試我們這次上線的內(nèi)容究竟有沒有問題,效果好不好,根據(jù)反饋再決定,剩余的節(jié)點是否要遷移到新的版本。
4.3. 灰度發(fā)布
通過切換線上并存版本之間路由的權(quán)重,逐步從一個版本切換為另一個版本的過程。
所有的用戶發(fā)起請求通過路由到以前的版本,新的版本沒有流量進來。
將95%的流量訪問舊的版本上,將5%的流量訪問新的版本上,來驗證新的版本是否有大量報錯,因為我的新版本上線之后,如果存在bug,只影響5%的用戶的體驗,大部分用戶不會受到影響,這樣是一個比較穩(wěn)妥的實驗室做法。
當我驗證新版本后沒問題后,將100%的流流量全部切換到新版本當中。將舊版本廢棄掉。
金絲雀發(fā)布更傾向于一個快速反饋的一個流程,而灰度發(fā)布更傾向于從一個版本切換到另一個版本的平穩(wěn)切換的一個目的。
4.4. A/B測試
4.5. 測試發(fā)布策略區(qū)別
待完善
總結(jié)
以上是生活随笔為你收集整理的SpringCloudGateway实现金丝雀发布_05的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ETL异构数据源Datax_使用数据分片
- 下一篇: 弹窗进度条_QQ 大更新!语音进度条来了