方槍槍的java世界

          不要因為風(fēng)雨飄落就停止了你的腳步,真正的得失就在你的心中。 做喜歡做的事,不輕言放棄!

          定時任務(wù)的灰度發(fā)布機制

          定時任務(wù)的灰度發(fā)布實現(xiàn)思路 

          1、啟動階段-注冊執(zhí)行節(jié)點 
               所有執(zhí)行節(jié)點在啟動的時候注冊自己能執(zhí)行哪些定時任務(wù) 
               執(zhí)行節(jié)點如果停機重啟(如:停機重啟,發(fā)布重啟),主節(jié)點會感知這個變化,從而從上述注冊中剝離該執(zhí)行節(jié)點,后續(xù)任務(wù)就不會再分配到原先節(jié)點

          2、啟動階段-選舉管理節(jié)點,
               所有節(jié)點注冊完畢,會參與選舉,產(chǎn)生一個管理節(jié)點
               管理節(jié)點可以參與或不參與任務(wù)執(zhí)行。
               管理節(jié)點隨機在執(zhí)行節(jié)點中產(chǎn)生,如果管理節(jié)點停機,zk會感知并通知所有節(jié)點重新選舉產(chǎn)生新管理節(jié)點。 

          3、運行階段-管理節(jié)點創(chuàng)建定時任務(wù)實例,分配給合適的執(zhí)行節(jié)點 
               管理節(jié)點選舉出來,就會周期性的掃描定時任務(wù)模版,提前創(chuàng)建定時任務(wù)實例并分配執(zhí)行節(jié)點, 分配執(zhí)行節(jié)點其實是更新實例的節(jié)點字段。 這叫做主動分配。 
               管理節(jié)點為任務(wù)實例分配執(zhí)行節(jié)點時遍歷具備該業(yè)務(wù)執(zhí)行能力的執(zhí)行節(jié)點集合,依次分發(fā)給執(zhí)行節(jié)點,
               開始時記錄開始節(jié)點,每輪掃描回到開始節(jié)點,就結(jié)束為本實例分配執(zhí)行節(jié)點動作
               如果此節(jié)點沒有執(zhí)行節(jié)點,就放棄等待下一輪掃描。 

          4、運行階段-執(zhí)行節(jié)點收到通知,掃描執(zhí)行任務(wù)實例 
               管理節(jié)點分配定時任務(wù)實例后,會通知執(zhí)行節(jié)點, 
               執(zhí)行節(jié)點受到通知,會到數(shù)據(jù)庫里撈取執(zhí)行分配給自己的待執(zhí)行任務(wù)實例 

          5、 關(guān)于灰度發(fā)布 
               發(fā)布人員會修改系統(tǒng)參數(shù)greyRegions,并刷新到緩存
               發(fā)布人員會停機需要升級灰度版本的部分節(jié)點,修改配置標(biāo)記為灰度節(jié)點
               發(fā)布人員發(fā)布灰度應(yīng)用并啟動應(yīng)用實例
               
               灰度節(jié)點啟動過程中重新注冊到定時任務(wù)管理機制中,標(biāo)記自己是灰度節(jié)點,注冊自己的定時任務(wù)業(yè)務(wù)能力,參與執(zhí)行分配 
               管理節(jié)點發(fā)現(xiàn)要執(zhí)行的實例屬于灰度region時,會尋找具備該能力的灰度節(jié)點執(zhí)行該定時任務(wù),
               如果沒有找到就放棄等待下一輪再掃,可能此時灰度節(jié)點還沒有啟動或注冊加入執(zhí)行節(jié)點集合。

          posted on 2016-09-20 17:43 做強大的自己 閱讀(1468) 評論(0)  編輯  收藏 所屬分類: 專題方案


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 田林县| 巢湖市| 类乌齐县| 喜德县| 闽侯县| 临朐县| 安新县| 桐梓县| 延寿县| 阿合奇县| 龙州县| 昌乐县| 两当县| 肇东市| 措勤县| 独山县| 米林县| 壤塘县| 周至县| 左贡县| 会东县| 长泰县| 新巴尔虎左旗| 阳曲县| 鄱阳县| 清流县| 黄大仙区| 喜德县| 平陆县| 云安县| 东丰县| 蒲城县| 烟台市| 安塞县| 将乐县| 翁源县| 临城县| 九江市| 南溪县| 临沧市| 新蔡县|