[發明專利]一種基于node.js的服務器進程調度方法、系統和裝置有效
| 申請號: | 201911409183.1 | 申請日: | 2019-12-31 |
| 公開(公告)號: | CN111538585B | 公開(公告)日: | 2022-03-01 |
| 發明(設計)人: | 方禺;王興華;薛立俊;陳達健 | 申請(專利權)人: | 明度智云(浙江)科技有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 杭州合譜慧知識產權代理事務所(特殊普通合伙) 33290 | 代理人: | 張剛 |
| 地址: | 310000 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 node js 服務器 進程 調度 方法 系統 裝置 | ||
1.一種基于node.js的服務器進程調度方法,其特征在于,包括:
調度進程獲取前端業務請求并搜索邏輯進程配置文件,其中所述調度進程為Node.js進程,如發現該邏輯進程配置文件則加載該配置文件,并根據配置文件確定需加載的邏輯進程數量;
如未發現該邏輯進程配置文件,則先掛載一預先邏輯進程,獲取預先掛載的邏輯進程的CPU使用率和磁盤占用率,當所述CPU使用率和磁盤占用率超過預設閾值時,持續補充掛載邏輯進程至所有邏輯進程的CPU使用率和磁盤占用率低于預設閾值;
所述調度進程根據確定需加載的邏輯進程數量進行相應加載,并將所述業務請求分配至所掛載的各邏輯進程;
當調度進程進入運行狀態時,根據對所掛載的多個邏輯進程的預設分配策略將所述業務請求選擇分配至所掛載的第一邏輯進程中;所述預設分配策略包括隨機分配策略或最小分配策略,其中隨機分配策略被配置為在N個工作的邏輯進程中,每次以求余的方式,選擇第i=(i+1)mod n個進程來發送命令請求;所述最小分配策略被配置為在分發命令前檢測各下掛的邏輯進程的負載狀態,根據CPU和I/O兩個維度來分析下掛邏輯進程的繁忙度,通過系統提供的API接口查到進程占用的CPU和I/O信息,將命令發送到繁忙度最小的邏輯進程中去處理;
所述第一邏輯進程根據接收的業務請求創建一業務實例,并將所述業務實例輸入為其創建的多個線程中執行;
當所述調度進程監聽到第一邏輯進程執行出現異常離線時,重啟第二邏輯進程以加載第一邏輯進程未完成信息,其中調度進程和邏輯進程約定多種狀態事件:錯誤狀態事件,被配置為當處理進程無法被復制創建、無法被終止且無法發送消息時被觸發;退出事件,被配置為當處理進程退出時觸發,當進程是正常退出時則返回正常結束碼,當進程異常退出后返回該進程退出時的錯誤信息;關閉事件,被配置為當處理進程完全退出時通知調度進程且當前進程已經完全離線時觸發;放棄事件,被配置為在極端情況下當處理進程在啟動過程中就發生了錯誤,并無限重啟達到一定次數時觸發該事件,觸發該事件后系統會在該事件中添加重要日志并發出報警;其中在第一邏輯進程出現異常時,即根據相應狀態觸發上述事件,停止接受新的連接并釋放當前持有的資源,在所有連接斷開且資源釋放完畢后便退出進程,此時調度進程在監聽到第一邏輯進程的關閉事件后,立即重啟一個第二邏輯進程,加載之前第一邏輯進程未完成的信息以繼續之前未完成服務。
2.根據權利要求1所述的基于node.js的服務器進程調度方法,其特征在于:當所述業務實例狀態發生改變或業務實例執行至預設節點時,備份所述業務實例的快照信息至實時數據庫。
3.根據權利要求2所述的基于node.js的服務器進程調度方法,其特征在于:所述調度進程實時監控各邏輯進程的負載狀態,并在監聽到一邏輯進程出現異常離線時,重啟第二邏輯進程以加載第一邏輯進程未完成信息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于明度智云(浙江)科技有限公司,未經明度智云(浙江)科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911409183.1/1.html,轉載請聲明來源鉆瓜專利網。





