1. 
          

          1. 新聞動(dòng)態(tài)

            穩定性保障,如何慢慢放量灰度

            常見(jiàn)問(wèn)題 發(fā)布者:ou3377 2021-12-07 16:18 訪(fǎng)問(wèn)量:80

             舉個(gè)例子說(shuō)明下:比如你在重構訂單詳情接口,這個(gè)接口之前是在A(yíng)服務(wù)里面,由于后續服務(wù)拆分更精細化,新拆了一個(gè)服務(wù),需要將這個(gè)接口遷移到新服務(wù)里面去。此時(shí)最簡(jiǎn)單的做法就是把代碼復制過(guò)去,然后讓客戶(hù)端用新的詳情接口。

                 但是這樣老版本的APP怎么辦?這個(gè)方案只能新版本的APP可以使用。所以對外的接口是不能變的,內部需要去做路由動(dòng)作,那么最方便的肯定是在網(wǎng)關(guān)做了,所以網(wǎng)關(guān)是特別適合做灰度邏輯的地方,下面我們先來(lái)看網(wǎng)關(guān)如何做灰度。




            圖片

            網(wǎng)關(guān)統一灰度


             網(wǎng)關(guān)默認是路由的/v1/order/detail接口,現在新加了/v2/order/detail接口,如果全部切過(guò)去,萬(wàn)一有問(wèn)題,所有用戶(hù)都會(huì )受到影響,所以需要灰度放量來(lái)將風(fēng)險降到最低。



            圖片

             

            網(wǎng)關(guān)內部可以對指定的用戶(hù)路由到v2版本的接口,也可以根據地區路由,方式有很多種,常用的路由方式有哪些我會(huì )在下面進(jìn)行講解。



            圖片

            應用內部自己灰度





            除了在網(wǎng)關(guān)進(jìn)行灰度,另一種方案就是應用內部自己灰度。也就是說(shuō)APP請求到網(wǎng)關(guān),網(wǎng)關(guān)到具體的服務(wù),這個(gè)服務(wù)此時(shí)還是之前的老服務(wù),需要在這個(gè)老服務(wù)調用新服務(wù)的接口,然后返回,這就是應用內部自己灰度的方式。

             

            一旦灰度完成,老服務(wù)內部的代碼就可以刪除,當請求過(guò)來(lái)的時(shí)候只需要路由到請服務(wù)即可。然后可以將網(wǎng)關(guān)路由的地址直接改成新服務(wù)的地址,此時(shí)老服務(wù)內的接口可以直接刪除,完成遷移動(dòng)作。

             

            圖片

             

            圖片

            灰度方式介紹







            用戶(hù)白名單灰度


            此方式較為簡(jiǎn)單,就是構建一個(gè)用戶(hù)的白名單,可以用手機號或者用戶(hù)ID,白名單可以放在數據表里面,也可以放在配置中心。從性能角度考慮放配置中心更合適,更新后也能實(shí)時(shí)生效。

             

            也就是當前請求的用戶(hù)在你配置的白名單里面,就讓他訪(fǎng)問(wèn)新版本的接口,不在就默認還是舊接口。通過(guò)這種方式觀(guān)察一段時(shí)間,如果沒(méi)有問(wèn)題,就可以加大灰度人數或者全量放開(kāi)。

             

            圖片

             



            用戶(hù)百分比灰度

            提取用戶(hù)ID的后兩位,然后產(chǎn)生一個(gè)隨機數,如果匹配上了,這個(gè)用戶(hù)就灰度中了。




            百分比灰度

            百分比灰度也是一種常用的灰度方式,此方式不會(huì )固定用戶(hù),而是采用隨機的方式進(jìn)行。如果設置了10%的灰度比例,也就是100次請求中有10次請求會(huì )被灰度中,會(huì )訪(fǎng)問(wèn)新的接口。
             
            當然為了影響降到最低,也可以實(shí)現千分比,萬(wàn)分比,慢慢調高比例,一點(diǎn)點(diǎn)往上灰度,這種方式非常穩妥。
             

            偽代碼如下:

             

              public static void main(String[] args) {    
                 // 灰度比例,配在配置中心    
                 int grayScale = 10;    
                 int probability = new Random().nextInt(100);    
                 if (probability < grayScale) {        
                   // 調用 /v2/order/detail    
                  } else {        
                    // 走本地老邏輯    
                  }
                }




            關(guān)鍵字: 穩定性 灰度

            文章連接: http://www.gostscript.com/cjwt/779.html

            版權聲明:文章由 晨展科技 整理收集,來(lái)源于互聯(lián)網(wǎng)或者用戶(hù)投稿,如有侵權,請聯(lián)系我們,我們會(huì )立即刪除。如轉載請保留

            双腿国产亚洲精品无码不卡|国产91精品无码麻豆|97久久久久久久极品|无码人妻少妇久久中文字幕
                1.