本發明專利技術公開了一種有狀態服務的變更方法和裝置,涉及計算機技術領域。該方法的一個具體實施方式包括:檢查有狀態服務的容器狀態,容器中運行有有狀態服務的主進程;在確定有狀態服務的容器狀態為健康狀態后,檢查有狀態服務當前是否滿足變更條件;在有狀態服務當前滿足變更條件的情況下,對有狀態服務進行變更。該實施方式能夠實現有狀態服務的自動化檢查和變更,降低人工工作量,滿足有狀態服務的升級或擴容等需求。級或擴容等需求。級或擴容等需求。
【技術實現步驟摘要】
一種有狀態服務的變更方法和裝置
[0001]本專利技術涉及計算機
,尤其涉及一種有狀態服務的變更方法和裝置。
技術介紹
[0002]傳統的有狀態服務的維護,一種方案是配置完善的監控報警,發生故障后由DBA(數據庫管理員)或運維人員手動恢復,另外一種方案是部署探活程序,當發現有故障的時候,可以觸發運行腳本或其它自動化程序,進行主從切換等服務。此外,為了對有狀態服務進行變更,比如擴容、升級軟件版本等操作時,需要DBA或運維人員制定嚴格的升級步驟和計劃,手動檢查每個升級步驟執行后有狀態服務是否完成內部的同步等邏輯,然后才能觸發下一步的升級操作。
[0003]在實現本專利技術過程中,專利技術人發現現有技術中至少存在如下問題:
[0004]手動和人工檢查工作繁瑣,沒有完善的自動檢查和變更機制。
技術實現思路
[0005]有鑒于此,本專利技術實施例提供一種有狀態服務的變更方法和裝置,能夠實現有狀態服務的自動化檢查和變更,降低人工工作量,滿足有狀態服務的升級或擴容等需求。
[0006]為實現上述目的,根據本專利技術實施例的一個方面,提供了一種有狀態服務的變更方法。
[0007]一種有狀態服務的變更方法,包括:檢查有狀態服務的容器狀態,容器中運行有所述有狀態服務的主進程;在確定所述有狀態服務的容器狀態為健康狀態后,檢查所述有狀態服務當前是否滿足變更條件;在所述有狀態服務當前滿足變更條件的情況下,對所述有狀態服務進行變更。
[0008]可選地,所述容器中還運行有上報心跳信息的客戶端,所述客戶端通過運行自定義的容器健康檢查腳本,檢查所述容器狀態;所述檢查有狀態服務的容器狀態之前,包括:接收所述客戶端上報的所述心跳信息或上報的所述容器狀態;在超時未收到所述心跳信息或收到的所述容器狀態為不健康狀態的情況下,將所述容器狀態存儲為不健康狀態;在所述心跳信息未超時且未收到上報的不健康狀態的情況下,將所述容器狀態存儲為健康狀態。
[0009]可選地,還包括:在所述容器狀態為不健康狀態的情況下,通過故障恢復操作將所述容器狀態恢復為健康狀態,所述故障恢復操作包括:根據所述容器狀態為不健康的次數,對所述容器添加標記,根據添加的標記對所述容器執行對應的故障恢復操作。
[0010]可選地,所述根據所述容器狀態為不健康的次數,對所述容器添加標記,根據添加的標記對所述容器執行對應的故障恢復操作,包括:如果所述容器狀態是第一次為不健康狀態,則標記所述容器為重啟狀態;如果所述容器狀態不止一次為不健康狀態,則標記所述容器為刪除狀態;根據所述添加的標記,對標記為重啟狀態的容器執行重啟,或對標記為刪除狀態的容器執行重建。
[0011]可選地,所述檢查所述有狀態服務當前是否滿足變更條件,包括:通過自定義的集群監控檢查腳本,檢查所述有狀態服務當前是否滿足變更條件,其中,所述集群監控檢查腳本用于檢查所述有狀態服務的容器所在集群是否健康以及所述有狀態服務當前是否滿足支持變更的條件。
[0012]可選地,所述對所述有狀態服務進行變更,包括:執行所述有狀態服務的預設變更計劃中當前待執行的變更動作,并在所述當前待執行的變更動作執行成功之后,再次確定所述有狀態服務的容器狀態為健康狀態且所述有狀態服務當前滿足變更條件,然后執行下一變更動作,直到所述預設變更計劃的所有變更動作執行完成。
[0013]根據本專利技術實施例的另一方面,提供了一種有狀態服務的變更裝置。
[0014]一種有狀態服務的變更裝置,包括:容器狀態檢查模塊,用于檢查有狀態服務的容器狀態,容器中運行有所述有狀態服務的主進程;變更條件檢查模塊,用于在確定所述有狀態服務的容器狀態為健康狀態后,檢查所述有狀態服務當前是否滿足變更條件;變更模塊,用于在所述有狀態服務當前滿足變更條件的情況下,對所述有狀態服務進行變更。
[0015]可選地,所述容器中還運行有上報心跳信息的客戶端,所述客戶端通過運行自定義的容器健康檢查腳本,檢查所述容器狀態;所述裝置還包括容器狀態存儲模塊,用于:接收所述客戶端上報的所述心跳信息或上報的所述容器狀態;在超時未收到所述心跳信息或收到的所述容器狀態為不健康狀態的情況下,將所述容器狀態存儲為不健康狀態;在所述心跳信息未超時且未收到上報的不健康狀態的情況下,將所述容器狀態存儲為健康狀態。
[0016]可選地,還包括故障恢復模塊,用于:在所述容器狀態為不健康狀態的情況下,通過故障恢復操作將所述容器狀態恢復為健康狀態,所述故障恢復操作包括:根據所述容器狀態為不健康的次數,對所述容器添加標記,根據添加的標記對所述容器執行對應的故障恢復操作。
[0017]可選地,所述故障恢復模塊還用于:如果所述容器狀態是第一次為不健康狀態,則標記所述容器為重啟狀態;如果所述容器狀態不止一次為不健康狀態,則標記所述容器為刪除狀態;根據所述添加的標記,對標記為重啟狀態的容器執行重啟,或對標記為刪除狀態的容器執行重建。
[0018]可選地,所述變更條件檢查模塊還用于:通過自定義的集群監控檢查腳本,檢查所述有狀態服務當前是否滿足變更條件,其中,所述集群監控檢查腳本用于檢查所述有狀態服務的容器所在集群是否健康以及所述有狀態服務當前是否滿足支持變更的條件。
[0019]可選地,所述變更模塊還用于:執行所述有狀態服務的預設變更計劃中當前待執行的變更動作,并在所述當前待執行的變更動作執行成功之后,再次確定所述有狀態服務的容器狀態為健康狀態且所述有狀態服務當前滿足變更條件,然后執行下一變更動作,直到所述預設變更計劃的所有變更動作執行完成。
[0020]根據本專利技術實施例的又一方面,提供了一種電子設備。
[0021]一種電子設備,包括:一個或多個處理器;存儲器,用于存儲一個或多個程序,當所述一個或多個程序被所述一個或多個處理器執行時,使得所述一個或多個處理器實現本專利技術實施例所提供的有狀態服務的變更方法。
[0022]根據本專利技術實施例的又一方面,提供了一種計算機可讀介質。
[0023]一種計算機可讀介質,其上存儲有計算機程序,所述計算機程序被處理器執行時
實現本專利技術實施例所提供的有狀態服務的變更方法。
[0024]上述專利技術中的一個實施例具有如下優點或有益效果:檢查有狀態服務的容器狀態,容器中運行有有狀態服務的主進程;在確定有狀態服務的容器狀態為健康狀態后,檢查有狀態服務當前是否滿足變更條件;在有狀態服務當前滿足變更條件的情況下,對有狀態服務進行變更。能夠實現有狀態服務的自動化檢查和變更,降低人工工作量,滿足有狀態服務的升級或擴容等需求。
[0025]上述的非慣用的可選方式所具有的進一步效果將在下文中結合具體實施方式加以說明。
附圖說明
[0026]附圖用于更好地理解本專利技術,不構成對本專利技術的不當限定。其中:
[0027]圖1是根據本專利技術一個實施例的有狀態服務的變更方法的主要步驟示意圖;
[0028]圖2是根據本專利技術一個實施例的有狀態服務的部署示意圖;
[0029]圖3是根據本發本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種有狀態服務的變更方法,其特征在于,包括:檢查有狀態服務的容器狀態,容器中運行有所述有狀態服務的主進程;在確定所述有狀態服務的容器狀態為健康狀態后,檢查所述有狀態服務當前是否滿足變更條件;在所述有狀態服務當前滿足變更條件的情況下,對所述有狀態服務進行變更。2.根據權利要求1所述的方法,其特征在于,所述容器中還運行有上報心跳信息的客戶端,所述客戶端通過運行自定義的容器健康檢查腳本,檢查所述容器狀態;所述檢查有狀態服務的容器狀態之前,包括:接收所述客戶端上報的所述心跳信息或上報的所述容器狀態;在超時未收到所述心跳信息或收到的所述容器狀態為不健康狀態的情況下,將所述容器狀態存儲為不健康狀態;在所述心跳信息未超時且未收到上報的不健康狀態的情況下,將所述容器狀態存儲為健康狀態。3.根據權利要求1所述的方法,其特征在于,還包括:在所述容器狀態為不健康狀態的情況下,通過故障恢復操作將所述容器狀態恢復為健康狀態,所述故障恢復操作包括:根據所述容器狀態為不健康的次數,對所述容器添加標記,根據添加的標記對所述容器執行對應的故障恢復操作。4.根據權利要求1所述的方法,其特征在于,所述根據所述容器狀態為不健康的次數,對所述容器添加標記,根據添加的標記對所述容器執行對應的故障恢復操作,包括:如果所述容器狀態是第一次為不健康狀態,則標記所述容器為重啟狀態;如果所述容器狀態不止一次為不健康狀態,則標記所述容器為刪除狀態;根據所述添加的標記,對標記為重啟狀態的容器執行重啟,或對標記為刪除狀態的容器執行重建。5.根據權利要求1所述的方法,其特征在于,所述檢查所述有狀態服務當前是否滿足變更條件,包括:通過自定義的集群監控檢查腳本,檢查所述有狀態服務當前是否滿足變更條件,其中,所述集群監控檢查腳本用于檢查所述有狀態服務的容器所在集群是否健康以及所述有狀態服務當前是否滿足支持變更的條件。6.根據權利要求1所述的方法,其特征在于,所述對所述有狀態服務進行變更,包括:執行所述有狀態服務的預設變更計劃中當前待執行的變更動作,并在所述當前待執行的變更動作執行成功之后,再次確定所述有狀態服務的容器狀態為健康狀態且所述有狀態服務當前滿足變更條件,然后執行下一變更動作,直到所述預設變更計劃的所有變更動作執行完成。7.一種有狀態服務的變更裝置,其特征在于,包括:容器狀態檢查模塊,用于檢查有狀態服務的容器狀態,容器中運行有所述有狀態服務的主進程;變更條件檢查模塊,用于在確定所述有狀態服務的容器狀...
【專利技術屬性】
技術研發人員:楊志嘉,孫來特,劉前進,何小鋒,
申請(專利權)人:京東科技信息技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。