天天看點

Marathon上應用重新開機政策的設定

Marathon為運作中的應用提供了靈活的重新開機政策。當應用隻有一個執行個體在運作,這時候重新開機的話,預設情況下Marathon會新起一個執行個體,在新執行個體重新開機完成之後,才會停掉原有執行個體,進而實作平滑的重新開機。

當然,可以通過Marathon提供的參數來設定自己想要的重新開機政策:

"upgradeStrategy":{
    "minimumHealthCapacity": N1,
    "maximumOverCapacity": N2
}
           

上面的N1, N2表示數值,大小範圍通常在0~1之間。下面舉例說明。

例1:N1為0.5,N2為1,應用執行個體數為4個

當進行重新開機時,Marathon會先停掉4*0.5個執行個體(即2個),再啟4*1個新執行個體(即4個),等到4個新執行個體都重新開機完成之後,再重新開機剩下的4*(1-0.5)個執行個體。

特點:重新開機的時候需要比實際運作時更多資源,但重新開機速度會快。

例2:N1為0.5,N2為0,應用執行個體數為4個

當進行重新開機時,Marathon會先停掉4*0.5個執行個體(即2個),由于maximumOverCapacity的值為0,這時不會多啟執行個體,等2個執行個體重新開機完成後,再重新開機剩下的2個執行個體。

特點:由于OverCapacity為0,是以不會額外多用資源,重新開機速度相當較慢。

例3:N1為0,N2為0

當兩個參數都為零時,重新開機的時候會将所有的執行個體全部殺掉,同時重新開機。

特點:重新開機的時候服務就全部挂了。這個設定可以跟隻運作一個執行個體的參數MARATHON_SINGLE_INSTANCE_APP配合使用(當MARATHON_SINGLE_INSTANCE_APP被設成true時,該應用是不可以Scale執行個體數超過1的):

"labels":{
    "MARATHON_SINGLE_INSTANCE_APP": "true",
},
"upgradeStrategy":{
    "minimumHealthCapacity": ,
    "maximumOverCapacity": 
}
           

繼續閱讀