1.一種實現運行環(huán)境動態(tài)伸縮的方法,其特征在于:所述方法通過java定時器調用cloud foundry的API獲取所有應用運行環(huán)境的CPU使用信息,并根據CPU的使用率與閥值比較,采用標簽化形式存入堆內存或內存數據庫;利用java定時器獲取堆內存或內存數據庫的信息,根據規(guī)則來監(jiān)測應用環(huán)境是否達到伸縮標準,并以之增加或減少實例個數,從而實現擴容/減容,總體實例數控制在最小-最大個數之間。
2.根據權利要求1所述的一種實現運行環(huán)境動態(tài)伸縮的方法,其特征在于,所述方法實現過程如下:
采用java堆內存,采用ConcurrentHashMap類型作為全局Map<應用Context名,12位狀態(tài)碼>寫入內存,12位狀態(tài)碼初始為“000000000000”;設置定時器A和定時器B:
定時器A,使用Maxflag和Minflag分別作為在內存中寫入超額H和低額L的觸發(fā)標識,
每10秒鐘,Maxflag檢測是否某應用下所有實例CPU使用率都達到80%以上,滿足條件進行數據打標簽,用“H”寫入狀態(tài)碼最后一位進行占位;
Minflag檢測是否某應用下所有實例CPU使用率都達到20%以上且實例數超過2個,滿足條件進行數據打標簽,用“L”寫入狀態(tài)碼最后一位進行占位;不超額也不低額則用“0”進行占位;
定時器B,不間斷循環(huán)讀取內存ConcurrentHashMap中的成員,如果讀到Map中某個key的value狀態(tài)碼為12位全“H”,則說明一分鐘該應用都處于超額狀態(tài),這時定時器B則調用cloud foundry接口增加一個實例,實現擴容;如果讀到Map中某個key的value狀態(tài)碼為12位全“L”,則說明一分鐘該應用都處于低額狀態(tài),這時定時器B則調用cloud foundry接口減少一個實例,實現減容。
3.根據權利要求2所述的一種實現運行環(huán)境動態(tài)伸縮的方法,其特征在于,所述方法ConcurrentHashMap類型作為全局Map寫入內存時,停止運行的應用及時釋放內存,防止內存占用不斷增大。