国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種用于管理分布式系統(tǒng)的方法和裝置與流程

      文檔序號:12596253閱讀:232來源:國知局
      一種用于管理分布式系統(tǒng)的方法和裝置與流程

      本發(fā)明涉及計算機領域,尤其涉及一種用于管理分布式系統(tǒng)的方法和裝置。



      背景技術:

      分布式系統(tǒng)由多個服務器組成,服務器間相互配合以實現(xiàn)整個系統(tǒng)對外的功能和服務。為了保證分布式系統(tǒng)能夠正常運行,為用戶提供服務,如何管理分布式系統(tǒng)就顯得非常重要。

      有相關技術對分布式系統(tǒng)采取如下的管理:首先在分布式系統(tǒng)中確定其中一個服務器為控制服務器,控制服務器在整個分布式系統(tǒng)中處于控制地位。然后,其他各個服務器的向控制服務器提供自身設備狀態(tài),以使控制服務器基于每個服務器的設備狀態(tài)對分布式系統(tǒng)中各個服務器進行管理。例如,優(yōu)先為設備狀態(tài)為“空閑”的服務器分配任務,關閉或者重啟設備狀態(tài)為“不可用”的服務器等。

      可見,相關技術在管理分布式系統(tǒng)時,僅涉及到設備級別的管理。然而,對于數(shù)據(jù)量龐大的分布式系統(tǒng),這樣的管理是不夠精確的。



      技術實現(xiàn)要素:

      鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的用于管理分布式系統(tǒng)的方法和裝置。

      第一方面,本發(fā)明提供了一種用于管理分布式系統(tǒng)的方法,包括:

      獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      將每個所述進程的所述進程參數(shù)發(fā)送至所述分布式系統(tǒng)的中心進程;

      接收所述中心進程基于所述進程參數(shù)而生成的控制指令;

      將所述控制指令轉(zhuǎn)發(fā)到所述控制指令對應的目標進程,以使所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      可選的,獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù),包括:

      在每個所述進程運行過程中,獲得每個所述進程的函數(shù)開銷,將所述函數(shù)開銷作為所述進程參數(shù)。

      可選的,在獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù)之前,還包括:

      接收每個所述進程發(fā)送的身份標識,并基于所述身份標識綁定每個所述進程。

      可選的,將所述控制指令轉(zhuǎn)發(fā)到所述控制指令對應的目標進程,包括:

      根據(jù)所述控制指令中包括的所述目標進程的身份標識確定所述目標進程;

      將所述控制指令的協(xié)議轉(zhuǎn)換為所述目標進程支持的協(xié)議;

      向所述目標進程發(fā)送協(xié)議轉(zhuǎn)換后的所述控制指令。

      可選的,所述方法還包括:

      接收用于修改配置的修改文件;所述修改文件為使用go語言編譯的文件;

      運行所述修改文件,以修改所述配置。

      可選的,所述進程由go語言編譯。

      第二方面,本發(fā)明提供了另一種用于管理分布式系統(tǒng)的方法,包括:

      接收所述分布式系統(tǒng)的軟件開發(fā)工具包SDK發(fā)送的所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      基于所述進程參數(shù),從所述進程中確定出需要進行控制的目標進程;

      根據(jù)所述目標進程的所述進程參數(shù)生成用于控制所述目標進程的控制指令;

      向所述SDK發(fā)送所述控制指令,以使所述SDK將所述控制指令轉(zhuǎn)發(fā)至所述目標進程,進而所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      可選的,基于所述進程參數(shù),從所述進程中確定出需要進行控制的目標進程,包括:

      判斷每個所述進程參數(shù)是否滿足表示所述進程需要被控制的預設條件;

      將滿足所述預設條件的所述進程參數(shù)對應的所述進程確定為所述目標進程。

      可選的,所述進程由go語言編譯。

      第四方面,本發(fā)明提供了一種用于管理分布式系統(tǒng)的裝置,包括:

      獲得模塊,用于獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      第一發(fā)送模塊,用于將每個所述進程的所述進程參數(shù)發(fā)送至所述分布式系統(tǒng)的中心進程;

      第一接收模塊,用于接收所述中心進程基于所述進程參數(shù)而生成的控制指令;

      第二發(fā)送模塊,用于將所述控制指令轉(zhuǎn)發(fā)到所述控制指令對應的目標進程,以使所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      可選的,所述獲得模塊用于在每個所述進程運行過程中,獲得每個所述進程的函數(shù)開銷,將所述函數(shù)開銷作為所述進程參數(shù)。

      可選的,所述裝置還包括:

      第二接收模塊,用于在獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù)之前,接收每個所述進程發(fā)送的身份標識,并基于所述身份標識綁定每個所述進程。

      可選的,所述第二發(fā)送模塊用于根據(jù)所述控制指令中包括的所述目標進程的身份標識確定所述目標進程;將所述控制指令的協(xié)議轉(zhuǎn)換為所述目標進程支持的協(xié)議;向所述目標進程發(fā)送協(xié)議轉(zhuǎn)換后的所述控制指令。

      可選的,所述裝置還包括:

      第三接收模塊,用于接收用于修改配置的修改文件;所述修改文件為使用go語言編譯的文件;

      運行模塊,用于運行所述修改文件,以修改所述配置。

      可選的,所述進程由go語言編譯。

      第四方面,本發(fā)明提供了另一種用于管理分布式系統(tǒng)的裝置,包括:

      接收模塊,用于接收所述分布式系統(tǒng)的軟件開發(fā)工具包SDK發(fā)送的所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      確定模塊,用于基于所述進程參數(shù),從所述進程中確定出需要進行控制的目標進程;

      生成模塊,用于根據(jù)所述目標進程的所述進程參數(shù)生成用于控制所述目標進程的控制指令;

      發(fā)送模塊,用于向所述SDK發(fā)送所述控制指令,以使所述SDK將所述控制指令轉(zhuǎn)發(fā)至所述目標進程,進而所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      可選的,所述確定模塊用于判斷每個所述進程參數(shù)是否滿足表示所述進程需要被控制的預設條件;將滿足所述預設條件的所述進程參數(shù)對應的所述進程確定為所述目標進程。

      可選的,所述進程由go語言編譯。

      本申請實施例中的上述一個或多個技術方案,至少具有如下一種或多種技術效果:

      在本發(fā)明實施例中,SDK獲得每個服務器上運行的每個進程的進程參數(shù),將每個進程的進程參數(shù)發(fā)送至中心進程。中心進程基于每個進程的進程參數(shù)確定需要進行控制的目標進程,以及基于目標進程的進程參數(shù)生成控制指令并發(fā)送給SDK。SDK接收控制指令,將控制指令轉(zhuǎn)發(fā)到目標進程,以使目標進程執(zhí)行控制指令,實現(xiàn)中心進程對目標進程的控制。通過上述過程,本發(fā)明實現(xiàn)了在分布式系統(tǒng)中進行進程級別的管理。由于對不同進程執(zhí)行不同的控制,相較于設備級別的控制,對一個服務器上的所有進程均進行一致管理,本發(fā)明能夠更加精確地管理分布式系統(tǒng)。

      附圖說明

      圖1為本發(fā)明實施例的一種可能的分布式系統(tǒng)架構圖;

      圖2為本發(fā)明實施例中一用于管理分布式系統(tǒng)的方法流程圖;

      圖3為本發(fā)明實施例中另一用于管理分布式系統(tǒng)的方法流程圖;

      圖4為本發(fā)明實施例中又一用于管理分布式系統(tǒng)的方法流程圖;

      圖5為本發(fā)明實施例中一用于管理分布式系統(tǒng)的裝置結(jié)構示意圖;

      圖6為本發(fā)明實施例中另一用于管理分布式系統(tǒng)的裝置結(jié)構示意圖。

      具體實施方式

      本發(fā)明實施例提供了一種用于管理分布式系統(tǒng)的方法和裝置,用于實現(xiàn)對分布式系統(tǒng)進行進程級別的管理。

      下面通過附圖以及具體實施例對本發(fā)明技術方案做詳細的說明,應當理解本申請實施例以及實施例中的具體特征是對本申請技術方案的詳細的說明,而不是對本申請技術方案的限定,在不沖突的情況下,本申請實施例以及實施例中的技術特征可以相互組合。

      本文中術語“和/或”,僅僅是一種描述關聯(lián)對象的關聯(lián)關系,表示可以存在三種關系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字符“/”,一般表示前后關聯(lián)對象是一種“或”的關系。

      為了更加清楚地描述本發(fā)明實施例中的技術方案,首先對可應用本發(fā)明實施例技術方案的分布式系統(tǒng)進行簡單介紹。請參考圖1,為一種可能的分布式系統(tǒng)架構圖。

      該架構包括:多個服務器,每個服務器通過網(wǎng)絡與其他服務器連接,多個服務器相互協(xié)同,以使整個分布式系統(tǒng)統(tǒng)一對用戶和上層應用提供服務。當分布式系統(tǒng)處于工作狀態(tài)時,每個服務器將運行至少一個進程。每個進程用于實現(xiàn)對至少一個用戶的功能,例如注冊功能、存儲功能、用戶狀態(tài)管理功能、接口功能、網(wǎng)關功能和路由功能等。每個服務器上運行的進程數(shù)量不完全相同,且每個服務器上的進程所對應的功能可以相同也可以不同,本發(fā)明不做具體限制。

      進一步,分布式系統(tǒng)所運行的所有進程中,有一個用于管理所有進程的中心進程,例如通知每個進程應該實現(xiàn)的功能。中心進程可以運行于任意一個服務器上。在具體實現(xiàn)過程中,為了給中心進程提供充足的設備資源,中心進程單獨運行在一個服務器上為較佳。換言之,運行中心進程的服務器不運行其他進程。

      另外,分布式系統(tǒng)還包括一個用于實現(xiàn)中心進程和各個進程交互的控制插件,例如SDK(軟件開發(fā)工具包,Software Development Kit)??刂撇寮墓δ芡ㄟ^每個進程共同支持。

      下面將參照附圖詳細地描述本發(fā)明實施例中如何管理分布式系統(tǒng)進行介紹。

      本發(fā)明第一方面提供了一種用于管理分布式系統(tǒng)的方法,如圖2所示,該方法包括:

      S101:獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      S102:將每個所述進程的所述進程參數(shù)發(fā)送至所述分布式系統(tǒng)的中心進程;

      S103:接收所述中心進程基于所述進程參數(shù)而生成的控制指令;

      S104:將所述控制指令轉(zhuǎn)發(fā)到所述控制指令對應的目標進程,以使所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      在具體實現(xiàn)過程中,執(zhí)行第一種用于管理分布式系統(tǒng)的方法的主體可以為分布式系統(tǒng)中具有控制功能的服務器、或者控制插件等,為方便介紹,下文中將以執(zhí)行主體為SDK為例。

      在S101中,SDK從分布式系統(tǒng)中的每個進程中獲得每個進程的進程參數(shù)。在本發(fā)明實施例中,進程參數(shù)為表示進程運行狀態(tài)的參數(shù)。接著,在S102中,SDK將所獲得的每個進程的進程參數(shù)發(fā)送給中心進程,以使中心進程可以參考進程參數(shù)確定對分布式系統(tǒng)中的進程如何進行控制。中心進程基于進程參數(shù)生成控制指令并返回給SDK,進而在S103中,SDK接收中心進程發(fā)送的控制指令。進一步的,S104中,SDK將控制指令轉(zhuǎn)發(fā)到中心進程需要控制的,也即控制指令對應的目標進程。目標進程接收SDK轉(zhuǎn)發(fā)來的控制指令,解析并執(zhí)行控制指令,進而實現(xiàn)中心進程對目標進程的控制。

      由上述描述可以看出,通過SDK收集分布式系統(tǒng)每個進程的進程參數(shù),將每個進程的進程參數(shù)發(fā)送至中心進程,進而中心進程基于每個進程的進程參數(shù)確定需要進行控制的目標進程并生成控制指令。SDK進一步將控制指令轉(zhuǎn)發(fā)到目標進程,由此實現(xiàn)對目標進程的控制。因此,本發(fā)明實施例實現(xiàn)了對分布式系統(tǒng)進程的管理。設備級別的控制針對一個設備進行控制,使得一個服務器上運行的不同進程均接受相同的控制。而本發(fā)明實施例對不同進程執(zhí)行不同的控制,所以,相較于設備級別的控制,本發(fā)明能夠更加精確地管理分布式系統(tǒng)。

      具體來講,在本發(fā)明實施例中,S101中獲得每個進程的進程參數(shù)包括如下過程:

      在每個所述進程運行過程中,獲得每個所述進程的函數(shù)開銷,將所述函數(shù)開銷作為所述進程參數(shù)。

      具體來講,函數(shù)開銷包括函數(shù)的調(diào)用時間和函數(shù)的調(diào)用關系。在每個進程運行的過程中,SDK從進程中收集函數(shù)開銷,進而將函數(shù)開銷作為進程參數(shù)。

      由于進程是一個程序,而程序的運行主要包括函數(shù)的執(zhí)行與調(diào)用,因此,函數(shù)開銷可以反映出進程的運行狀態(tài)。

      作為一種可選的實施例,在S101之前還包括:

      接收每個所述進程發(fā)送的身份標識,并基于所述身份標識綁定每個所述進程。

      為了讓SDK在進程運行時能夠收集到進程參數(shù),在S101之前,每個進程將自身的身份標識發(fā)送給SDK。其中,身份標識用于唯一標識一個進程。在本發(fā)明實施例中,身份標識包括但不限于進程的IP(網(wǎng)絡之間互連的協(xié)議,Internet Protocol)和端口等,本發(fā)明不做具體限制。具體來講,每個進程在上線后,將自身身份標識提供給SDK,以使得SDK可以在進程運行時獲得進程參數(shù),進而使得中心進程可以對該進程進行管理。SDK接收各個進程發(fā)送而來的身份標識,存儲在SDK對應的存儲空間中,進而將SDK與各個進程綁定。

      進而,當SDK需要獲取進程參數(shù)時,從存儲空間中讀取需要獲取進程參數(shù)的進程的身份標識,通過IP和端口訪問該進程,從該進程中收集進程參數(shù)。

      進一步,結(jié)合上述實施例,S104則具體通過如下過程實現(xiàn):

      根據(jù)所述控制指令中包括的所述目標進程的身份標識確定所述目標進程;

      將所述控制指令的協(xié)議轉(zhuǎn)換為所述目標進程支持的協(xié)議;

      向所述目標進程發(fā)送協(xié)議轉(zhuǎn)換后的所述控制指令。

      具體來講,本發(fā)明實施例中的控制指令包括目標進程的身份標識,因此,SDK接收中心進程發(fā)送的控制指令后,從控制指令中解析出身份標識,然后進一步根據(jù)存儲的各個進程的身份標識,匹配出與控制指令中的身份標識一致的進程,將該進程確定為目標進程。

      另外,由于中心進程所支持或所使用的協(xié)議與目標進程可能有所不同,所以,為了使得目標進程可以讀取并執(zhí)行控制指令,SDK還需要按照目標進程所支持的協(xié)議對控制指令進行協(xié)議轉(zhuǎn)換,將控制指令的協(xié)議轉(zhuǎn)換為目標進程所支持的協(xié)議。然后,按照確定出的目標進程,將轉(zhuǎn)換后的控制指令發(fā)送到目標進程。

      作為一種可選的實施例,在本發(fā)明實施例中,用于管理分布式系統(tǒng)的方法還可以進一步包括:

      接收用于修改配置的修改文件;所述修改文件為使用go語言編譯的文件;

      運行所述修改文件,以修改所述配置。

      具體來講,SDK接收管理人員發(fā)送來的用于修改SDK配置的修改文件。在本發(fā)明實施例中,修改文件包括但不限于修改的配置項目、修改后的配置參數(shù)以及安全驗證信息等,本發(fā)明不做具體限制。

      SDK接收到修改文件后,對修改文件進行解析,并且運行解析后的修改文件,實現(xiàn)對相應配置參數(shù)的修改。其中,本發(fā)明實施例中的修改文件為使用go語言編譯的文件。其中,go語言是谷歌開發(fā)的編程語言,具有支持高并發(fā)等優(yōu)點。利用go語言在編寫修改文件時可以以串行思維編寫,在底層實現(xiàn)時則按純異步并行執(zhí)行。所以,修改文件發(fā)送到SDK后,SDK可以自動將需要修改的配置參數(shù),以及與需要修改的配置參數(shù)相關的參數(shù)一并自動修改。

      由上述描述可知,利用go語言編譯修改文件,再將修改文件打包發(fā)送到線上的SDK中,可以實現(xiàn)SDK基于修改文件自動修改配置,以及自動修改與修改的配置參數(shù)相關的其他參數(shù)。進而,分布式系統(tǒng)的管理人員不需要再自行對需要修改的配置參數(shù)進行修改,以及逐一對相關的其他參數(shù)進行修改,因此節(jié)約了人力,實現(xiàn)了自動化的技術效果。

      更進一步,本發(fā)明實施例中的進程均有go語言編寫。因此數(shù)量較多的進程可以并行執(zhí)行,滿足應用實時性高的需求,例如處理網(wǎng)絡直播過程中觀看者發(fā)送的大量信息,或者視頻的彈幕等。

      本發(fā)明第二方面提供了另一種用于管理分布式系統(tǒng)的方法,如圖3所示,該方法包括:

      S201:接收所述分布式系統(tǒng)的軟件開發(fā)工具包SDK發(fā)送的所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      S202:基于所述進程參數(shù),從每個所述進程中確定出需要進行控制的目標進程;

      S203:根據(jù)所述目標進程的所述進程參數(shù)生成用于控制所述目標進程的控制指令;

      S204:向所述SDK發(fā)送所述控制指令,以使所述SDK將所述控制指令轉(zhuǎn)發(fā)至所述目標進程,進而所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      在具體實現(xiàn)過程中,執(zhí)行第二種用于管理分布式系統(tǒng)的方法的主體可以為分布式系統(tǒng)中具有控制功能的服務器、或者中心進程等,為方便介紹,下文中將以執(zhí)行主體為中心進程為例。

      在S201中,中心進程從SDK接收每個進程的進程參數(shù)。接著,中心進程對每個進程參數(shù)進行分析,確定進程參數(shù)對應的進程是否需要管理和控制。在S202中,基于進程參數(shù),從所有進程中確定出需要控制的進程,將需要控制的進程確定為目標進程。S203中,還需要進一步基于目標進程的進程參數(shù)確定如何控制目標進程,進而生成控制指令。最后,在S204中,將生成的控制指令反饋給SDK,以使SDK將控制指令轉(zhuǎn)發(fā)到目標進程進行執(zhí)行。

      通過SDK收集分布式系統(tǒng)每個進程的進程參數(shù),將每個進程的進程參數(shù)發(fā)送至中心進程,進而中心進程基于每個進程的進程參數(shù)確定需要進行控制的目標進程并生成控制指令。SDK進一步將控制指令轉(zhuǎn)發(fā)到目標進程,由此實現(xiàn)對目標進程的控制。因此,本發(fā)明實施例實現(xiàn)了對分布式系統(tǒng)進程的管理。設備級別的控制針對一個設備進行控制,使得一個服務器上運行的不同進程均接受相同的控制。而本發(fā)明實施例對不同進程執(zhí)行不同的控制,所以,相較于設備級別的控制,本發(fā)明能夠更加精確地管理分布式系統(tǒng)。

      具體來講,在本發(fā)明實施例中,S202具體通過如下過程實現(xiàn):

      判斷每個所述進程參數(shù)是否滿足表示所述進程需要被控制的預設條件;

      將滿足所述預設條件的所述進程參數(shù)對應的所述進程確定為所述目標進程。

      具體來講,本發(fā)明實施例中的預設條件為表示進程需要被控制的條件,例如進程運行異常、進程運行速度慢或者進程運行出現(xiàn)故障等。對每個進程參數(shù)逐一判斷是否滿足預設條件,如果進程參數(shù)滿足預設條件,則將該進程參數(shù)對應的進程確定為目標進程;反之,如果進程參數(shù)滿足預設條件,則對下一進程參數(shù)進行判斷。

      在具體實現(xiàn)過程中,預設條件有多種可能性,判斷進程參數(shù)是否滿足預設條件的實現(xiàn)方式也有多種,進而控制指令也有多種可能。下面將列舉其中幾種。

      第一種:

      在第一種實現(xiàn)方式中,預設條件為進程參數(shù)為空。那么,判斷每個進程參數(shù)是否滿足預設條件,就具體為判斷進程參數(shù)是否為空。

      因此,中心進程對接收到的所有進程參數(shù),一一判斷是否為空。對于空的進程參數(shù),則將對應的進程確定為目標進程。

      具體來講,進程參數(shù)為空,則表示對應的進程出現(xiàn)網(wǎng)絡故障,或者對應的進程無法運行,那么中心進程可以將進程參數(shù)為空的進程下線,或者重啟。進而,在本發(fā)明實施例中,對于進程參數(shù)為空的進程,中心節(jié)點將生成下線或重啟的控制指令。

      第二種:

      在第二種實現(xiàn)方式中,預設條件為進程參數(shù)中的超時次數(shù)超過預設次數(shù)。那么,判斷每個進程參數(shù)是否滿足預設條件,就具體為判斷進程參數(shù)的超時次數(shù)是否超過預設次數(shù)。例如,預設次數(shù)為20次,當進程參數(shù)中的超時次數(shù)超過20次,則將進程參數(shù)對應的進程確定為目標進程。其中,預設次數(shù)可以為缺省設置,也可以由分布式系統(tǒng)的管理員根據(jù)需要動態(tài)調(diào)整,本發(fā)明不做具體限制。

      具體來講,如果進程參數(shù)的超時次數(shù)超過與預設次數(shù),表明對應的進程在執(zhí)行過程中頻繁出現(xiàn)超時。如果頻繁出現(xiàn)超時,原因可能是進程出現(xiàn)了網(wǎng)絡故障,導致長時間無法響應;或者,原因可能在于超時時間設置地較短,導致請求時間很容易超時。

      因此在第二種實現(xiàn)方式中,如果進程參數(shù)的超時次數(shù)超過預設次數(shù),則可以生成重啟的控制指令,或者重新連接網(wǎng)絡的控制指令,或者還可以生成將超時時間修改為更長時間的控制指令,例如將超時時間從3秒修改為5秒等。本發(fā)明所屬領域的普通技術人員可以根據(jù)實際進行設置,本發(fā)明不做具體限制。

      第三種:

      在第三中實現(xiàn)方式中,預設條件為進程參數(shù)中的服務用戶數(shù)量超過預設數(shù)量。那么,判斷每個進程參數(shù)是否滿足預設條件,就具體為判斷進程參數(shù)的服務用戶數(shù)量是否超過預設數(shù)量。例如,預設數(shù)量為1000,則當進程參數(shù)中的服務用戶數(shù)量超過1000時,確定進程參數(shù)對應的進程為目標進程。

      具體來講,當服務用戶數(shù)量超過預設數(shù)量時,表示分布式系統(tǒng)當前接入大量用戶,因此進程當前需要處理大量消息。處理大量消息,一方面對進程將造成很大的負擔,甚至使進程癱瘓,另一方面,用戶發(fā)送消息后需等待很長時間才能確定自己的消息是否被響應。所以,在本發(fā)明實施例中,當服務用戶數(shù)量超過預設數(shù)量時,可以修改進程丟棄消息的丟棄率。例如,當服務用戶數(shù)量超過1000時,將丟棄率修改為10%;當服務用戶數(shù)量超過2000時,將丟棄率修改為20%;當服務用戶數(shù)量超過10000時,將丟棄率修改為50%。

      進而,對于服務用戶數(shù)量超過預設數(shù)量的進程,中心進程可以生成用于修改丟棄率的控制指令。

      在具體實現(xiàn)過程中,本發(fā)明所屬領域的普通技術人員可以根據(jù)實際選擇上述實現(xiàn)方式中的任一種,當然,在不沖突的情況下,還可以選擇任意多種實現(xiàn)方式進行組合,本發(fā)明不做具體限制。

      進一步,本發(fā)明實施例中的所有進程均有go語義編譯。

      本發(fā)明第三方面提供了另一種用于管理分布式系統(tǒng)的方法,如圖4所示,該方法包括:

      S301:分布式系統(tǒng)的SDK獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      S302:所述SDK將每個所述進程的所述進程參數(shù)發(fā)送至所述分布式系統(tǒng)的中心進程;

      S303:所述中心進程基于所述進程參數(shù),從所述進程中確定出需要進行控制的目標進程,并根據(jù)所述目標進程的所述進程參數(shù)生成用于控制所述目標進程的控制指令;

      S304:所述中心進程向所述SDK發(fā)送所述控制指令;

      S305:所述SDK將所述控制指令轉(zhuǎn)發(fā)到所述控制指令對應的目標進程,以使所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      在本發(fā)明實施例中,執(zhí)行第三種用于管理分布式系統(tǒng)的方法的主體為分布式系統(tǒng)。

      分布式系統(tǒng)通過SDK獲得每個進程的進程參數(shù),并將SDK獲得的進程數(shù)據(jù)發(fā)送給分布式系統(tǒng)中的中心進程。進而,分布式系統(tǒng)通過中心進程,從各個進程中確定出需要進行管理和控制的目標進程,并生成對目標進程進行控制的控制指令。進一步,分布式系統(tǒng)通過SDK將中心進程生成的控制指令轉(zhuǎn)發(fā)到目標進程,以使目標進行執(zhí)行,實現(xiàn)對分布式系統(tǒng)進程級別的管理。

      前述實施例中的各種變化方式和具體實例同樣適用于第三方面中用于管理分布式系統(tǒng)的方法,所以為了說明書的簡潔,在此不再詳述。

      基于與前述實施例中用于管理分布式系統(tǒng)的方法同樣的發(fā)明構思,本發(fā)明第四方面還提供一種用于管理分布式系統(tǒng)的裝置,如圖5所示,包括:

      獲得模塊101,用于獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      第一發(fā)送模塊102,用于將每個所述進程的所述進程參數(shù)發(fā)送至所述分布式系統(tǒng)的中心進程;

      第一接收模塊103,用于接收所述中心進程基于所述進程參數(shù)而生成的控制指令;

      第二發(fā)送模塊104,用于將所述控制指令轉(zhuǎn)發(fā)到所述控制指令對應的目標進程,以使所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      具體來講,獲得模塊101用于在每個所述進程運行過程中,獲得每個所述進程的函數(shù)開銷,將所述函數(shù)開銷作為所述進程參數(shù)。

      進一步,在本發(fā)明實施例中,用于管理分布式系統(tǒng)的裝置還包括:

      第二接收模塊,用于在獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù)之前,接收每個所述進程發(fā)送的身份標識,并基于所述身份標識綁定每個所述進程。

      進而,第二發(fā)送模塊104用于根據(jù)所述控制指令中包括的所述目標進程的身份標識確定所述目標進程;將所述控制指令的協(xié)議轉(zhuǎn)換為所述目標進程支持的協(xié)議;向所述目標進程發(fā)送協(xié)議轉(zhuǎn)換后的所述控制指令。

      更進一步,本發(fā)明實施例中的裝置還包括:

      第三接收模塊,用于接收用于修改配置的修改文件;所述修改文件為使用go語言編譯的文件;

      運行模塊,用于運行所述修改文件,以修改所述配置。

      其中,本發(fā)明實施例中的進程由go語言編譯。

      前述圖1、圖2和圖4實施例中的用于管理分布式系統(tǒng)的方法的各種變化方式和具體實例同樣適用于本實施例的用于管理分布式系統(tǒng)的裝置,通過前述對用于管理分布式系統(tǒng)的方法的詳細描述,本領域技術人員可以清楚的知道本實施例中用于管理分布式系統(tǒng)的裝置的實施方法,所以為了說明書的簡潔,在此不再詳述。

      基于與前述實施例中用于管理分布式系統(tǒng)的方法同樣的發(fā)明構思,本發(fā)明第五方面還提供另一種用于管理分布式系統(tǒng)的裝置,如圖6所示,包括:

      接收模塊201,用于接收所述分布式系統(tǒng)的軟件開發(fā)工具包SDK發(fā)送的所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      確定模塊202,用于基于所述進程參數(shù),從所述進程中確定出需要進行控制的目標進程;

      生成模塊203,用于根據(jù)所述目標進程的所述進程參數(shù)生成用于控制所述目標進程的控制指令;

      發(fā)送模塊204,用于向所述SDK發(fā)送所述控制指令,以使所述SDK將所述控制指令轉(zhuǎn)發(fā)至所述目標進程,進而所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      具體來講,確定模塊202用于判斷每個所述進程參數(shù)是否滿足表示所述進程需要被控制的預設條件;將滿足所述預設條件的所述進程參數(shù)對應的所述進程確定為所述目標進程。

      其中,本發(fā)明實施例中的進程由go語言編譯。

      前述圖1、圖3和圖4實施例中的用于管理分布式系統(tǒng)的方法的各種變化方式和具體實例同樣適用于本實施例的用于管理分布式系統(tǒng)的裝置,通過前述對用于管理分布式系統(tǒng)的方法的詳細描述,本領域技術人員可以清楚的知道本實施例中用于管理分布式系統(tǒng)的裝置的實施方法,所以為了說明書的簡潔,在此不再詳述。

      本申請實施例中的上述一個或多個技術方案,至少具有如下一種或多種技術效果:

      前述圖1-圖2實施例中的用于管理分布式系統(tǒng)的方法的各種變化方式和具體實例同樣適用于本實施例的用于管理分布式系統(tǒng)的裝置,通過前述對用于管理分布式系統(tǒng)的方法的詳細描述,本領域技術人員可以清楚的知道本實施例中用于管理分布式系統(tǒng)的裝置的實施方法,所以為了說明書的簡潔,在此不再詳述。

      在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構造這類系統(tǒng)所要求的結(jié)構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。

      在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構和技術,以便不模糊對本說明書的理解。

      類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發(fā)明的單獨實施例。

      本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。

      此外,本領域的技術人員能夠理解,盡管在此的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。

      本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的網(wǎng)關、代理服務器、系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。

      應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。

      本發(fā)明公開了,A1、一種用于管理分布式系統(tǒng)的方法,其特征在于,包括:

      獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      將每個所述進程的所述進程參數(shù)發(fā)送至所述分布式系統(tǒng)的中心進程;

      接收所述中心進程基于所述進程參數(shù)而生成的控制指令;

      將所述控制指令轉(zhuǎn)發(fā)到所述控制指令對應的目標進程,以使所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      A2、根據(jù)A1所述的方法,其特征在于,獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù),包括:

      在每個所述進程運行過程中,獲得每個所述進程的函數(shù)開銷,將所述函數(shù)開銷作為所述進程參數(shù)。

      A3、根據(jù)A1所述的方法,其特征在于,在獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù)之前,還包括:

      接收每個所述進程發(fā)送的身份標識,并基于所述身份標識綁定每個所述進程。

      A4、根據(jù)A3所述的方法,其特征在于,將所述控制指令轉(zhuǎn)發(fā)到所述控制指令對應的目標進程,包括:

      根據(jù)所述控制指令中包括的所述目標進程的身份標識確定所述目標進程;

      將所述控制指令的協(xié)議轉(zhuǎn)換為所述目標進程支持的協(xié)議;

      向所述目標進程發(fā)送協(xié)議轉(zhuǎn)換后的所述控制指令。

      A5、根據(jù)A1所述的方法,其特征在于,所述方法還包括:

      接收用于修改配置的修改文件;所述修改文件為使用go語言編譯的文件;

      運行所述修改文件,以修改所述配置。

      A6、根據(jù)A1-A5任一項所述的方法,其特征在于,所述進程由go語言編譯。

      B7、一種用于管理分布式系統(tǒng)的方法,其特征在于,包括:

      接收所述分布式系統(tǒng)的軟件開發(fā)工具包SDK發(fā)送的所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      基于所述進程參數(shù),從所述進程中確定出需要進行控制的目標進程;

      根據(jù)所述目標進程的所述進程參數(shù)生成用于控制所述目標進程的控制指令;

      向所述SDK發(fā)送所述控制指令,以使所述SDK將所述控制指令轉(zhuǎn)發(fā)至所述目標進程,進而所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      B8、根據(jù)B7所述的方法,其特征在于,基于所述進程參數(shù),從所述進程中確定出需要進行控制的目標進程,包括:

      判斷每個所述進程參數(shù)是否滿足表示所述進程需要被控制的預設條件;

      將滿足所述預設條件的所述進程參數(shù)對應的所述進程確定為所述目標進程。

      B9、根據(jù)B7或B8所述的方法,其特征在于,所述進程由go語言編譯。

      C10、一種用于管理分布式系統(tǒng)的裝置,其特征在于,包括:

      獲得模塊,用于獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      第一發(fā)送模塊,用于將每個所述進程的所述進程參數(shù)發(fā)送至所述分布式系統(tǒng)的中心進程;

      第一接收模塊,用于接收所述中心進程基于所述進程參數(shù)而生成的控制指令;

      第二發(fā)送模塊,用于將所述控制指令轉(zhuǎn)發(fā)到所述控制指令對應的目標進程,以使所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      C11、根據(jù)C10所述的裝置,其特征在于,所述獲得模塊用于在每個所述進程運行過程中,獲得每個所述進程的函數(shù)開銷,將所述函數(shù)開銷作為所述進程參數(shù)。

      C12、根據(jù)C10所述的裝置,其特征在于,所述裝置還包括:

      第二接收模塊,用于在獲得所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù)之前,接收每個所述進程發(fā)送的身份標識,并基于所述身份標識綁定每個所述進程。

      C13、根據(jù)C12所述的裝置,其特征在于,所述第二發(fā)送模塊用于根據(jù)所述控制指令中包括的所述目標進程的身份標識確定所述目標進程;將所述控制指令的協(xié)議轉(zhuǎn)換為所述目標進程支持的協(xié)議;向所述目標進程發(fā)送協(xié)議轉(zhuǎn)換后的所述控制指令。

      C14、根據(jù)C10所述的裝置,其特征在于,所述裝置還包括:

      第三接收模塊,用于接收用于修改配置的修改文件;所述修改文件為使用go語言編譯的文件;

      運行模塊,用于運行所述修改文件,以修改所述配置。

      C15、根據(jù)C10-C14任一項所述的裝置,其特征在于,所述進程由go語言編譯。

      D16、一種用于管理分布式系統(tǒng)的裝置,其特征在于,包括:

      接收模塊,用于接收所述分布式系統(tǒng)的軟件開發(fā)工具包SDK發(fā)送的所述分布式系統(tǒng)的每個服務器上運行的每個進程的進程參數(shù);

      確定模塊,用于基于所述進程參數(shù),從所述進程中確定出需要進行控制的目標進程;

      生成模塊,用于根據(jù)所述目標進程的所述進程參數(shù)生成用于控制所述目標進程的控制指令;

      發(fā)送模塊,用于向所述SDK發(fā)送所述控制指令,以使所述SDK將所述控制指令轉(zhuǎn)發(fā)至所述目標進程,進而所述目標進程執(zhí)行所述控制指令,實現(xiàn)所述中心進程對所述目標進程的控制。

      D17、根據(jù)D16所述的裝置,其特征在于,所述確定模塊用于判斷每個所述進程參數(shù)是否滿足表示所述進程需要被控制的預設條件;將滿足所述預設條件的所述進程參數(shù)對應的所述進程確定為所述目標進程。

      D18、根據(jù)D16或D17所述的裝置,其特征在于,所述進程由go語言編譯。

      顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1