記一次閱讀灰度發布原始碼的感想

2022-03-13 15:59:52 字數 587 閱讀 7428

最早接觸灰度發布是聽到公司大佬提到的重大上線必須灰度。當時「灰度」這個專業詞語抓住了我的眼球。於是我也開始了對灰度發布的**。起初的概念只限於部分讓部分機器上線最新功能,後面就更深化為使用者選取、資料反饋、回滾策略關鍵的三部。直到昨天無意間看到專案中灰度的部分原始碼,又瞬間開始深入研究起來。

灰度要實現的幾個關鍵點有以下幾點:1、如何將使用者請求導流到灰度環境上。2、如何控制灰度的範圍。3、回滾策略是什麼。 

首先如何進行使用者導流,網上有說用nginx進行導流,具體我沒看到過就不提了。當前我所閱讀到原始碼中是通過乙個開關控制所有正式環境下的請求是否應該進入灰度環境。具體技術實現是從註冊中心獲取開關標識,開啟後,則所有請求再進行灰度範圍判斷。

灰度的範圍判斷則是採用redis或其他快取,儲存當前灰度上的使用者數量及使用者id。如果超過範圍,請求還是在原先的正式環境下進行處理。

灰度回滾則就直接是git相關的一些應用了,這裡就不贅述了。

記一次原始碼分析

首先分析一段很短的 include include using namespace std vector getdata return std move v returnv intmain 這段 是錯的,裡面出現了乙個很容易犯得bug 如果函式中有建立本地物件並需要返回時,只能返回物件,不能返回指標...

記一次koa2原始碼的探索經歷

1.本文解決兩個問題,koa啟動的時候需要初始化哪些東西和做了哪些事情?2.一次完整的http請求,對於koa來說是怎麼處理的?3.我們先來回顧一下,我們在使用koa時所使用的一些 const koa require koa 載入koa框架 載入路由 監聽埠號,進行呼叫 logger.info we...

記一次看diff原始碼如何操控虛擬DOM

根據以往經驗 我們先看看snabbdom文件 snabbdom裡有個h 返回了個函式vnode 的結尾返回了乙個vnode函式 其中 sel data children text 都是vue函式裡比較重要的,然後看看vnode.ts裡的 vnode裡 返回了 這麼乙個資料 其中elm 就是vnode...