一種提高軟件系統(tǒng)運行效率的方法及裝置的制造方法
【專利摘要】本發(fā)明提出了一種提高軟件系統(tǒng)運行效率的方法,所述方法包括:檢測到本地服務器的負荷達到預設值時,將系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上。本發(fā)明還提出了一種提高軟件系統(tǒng)運行效率的裝置。如此,通過模塊遷移分擔運行負荷,提高系統(tǒng)運行效率。且這種模塊遷移對用戶層面是透明的,不影響系統(tǒng)提供的功能,根據(jù)系統(tǒng)運行的實際情況對模塊進行調(diào)配,具有很強的靈活性。同時,這種自行部署,無需維護人員在場,維護方便快捷。相對于傳統(tǒng)技術預先將某些模塊部署為一個獨立進程或部署到一臺服務器上,本發(fā)明根據(jù)本地服務器的負荷靈活調(diào)配模塊,使系統(tǒng)資源得到充分利用。
【專利說明】
一種提高軟件系統(tǒng)運行效率的方法及裝置
技術領域
[0001]本發(fā)明涉及提高軟件系統(tǒng)運行效率技術領域,更具體地,涉及一種提高軟件系統(tǒng)運行效率的方法及裝置。
【背景技術】
[0002]在軟件系統(tǒng)投入使用前期,由于系統(tǒng)處理的業(yè)務較少,占用的CPU及內(nèi)存資源也較少。當后續(xù)由于業(yè)務數(shù)量的不斷增加,大大增加了系統(tǒng)服務器運行的負荷,出現(xiàn)CPU利用率過高、內(nèi)存資源占用過多等情況,導致系統(tǒng)運行緩慢。
[0003]解決上述問題的傳統(tǒng)方案:在軟件設計前期會對各個模塊承擔的業(yè)務需求進行一個評估,如果有的模塊可能存在導致系統(tǒng)運行效率低下的瓶頸,會將該模塊設計為一個單獨的進程進行獨立部署。這種方式靈活性不夠,特別是在業(yè)務負荷不大的情況下,將某些模塊獨立部署為一個進程或者獨立部署到一臺服務器上是一種資源的浪費。同時用戶對軟件進程的管理也會比較復雜,開發(fā)成本較高。這種模式不能靈活的應對各類用戶和各種業(yè)務需求調(diào)整部署方案。部署工作必須有維護人員在場,用戶無法自行實施部署,增加了軟件維護的復雜性。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提出一種提高軟件系統(tǒng)運行效率的方法,所述方法包括:
[0005]檢測到本地服務器的負荷達到預設值時,將系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上。
[0006]進一步地,在系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上之后,所述方法還包括:
[0007]所述系統(tǒng)資源占用大模塊與被依賴模塊之間采用服務調(diào)用方式或消息訂閱方式進行交互。
[0008]進一步地,所述系統(tǒng)資源占用大模塊與所述被依賴模塊之間采用服務調(diào)用方式進行交互,具體包括:
[0009]所述系統(tǒng)資源占用大模塊向所述被依賴模塊發(fā)起服務調(diào)用時,查詢系統(tǒng)模塊部署配置文件;
[0010]根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程時,則所述系統(tǒng)資源占用大模塊通過所述本地服務器完成對所述被依賴模塊的服務調(diào)用;或者,
[0011]根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器時,則所述系統(tǒng)資源占用大模塊通過所述遠程服務器完成對所述被依賴模塊的服務調(diào)用。
[0012]進一步地,所述系統(tǒng)資源占用大模塊與所述被依賴模塊之間采用消息訂閱方式進行交互,具體包括:
[0013]所述系統(tǒng)資源占用大模塊向所述被依賴模塊發(fā)起消息訂閱時,查詢系統(tǒng)模塊部署配置文件;
[0014]根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程時,則所述系統(tǒng)資源占用大模塊通過本地消息服務器完成對所述被依賴模塊的消息訂閱;或者,
[0015]根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器時,則所述系統(tǒng)資源占用大模塊通過遠程消息服務器完成對所述被依賴模塊的消息訂閱。
[0016]進一步地,所述系統(tǒng)模塊部署配置文件包括:
[0017]所述系統(tǒng)資源占用大模塊所在第一服務器IP地址及進程端口、所述被依賴模塊所在第二服務器IP地址及進程端口、所述本地消息服務器IP地址、所述遠程消息服務器IP地址;
[0018]所述第一服務器為所述本地服務器;
[0019]所述第二服務器為所述本地服務器或所述遠程服務器。
[0020]進一步地,在檢測到本地服務器的負荷達到預設值之前,所述方法還包括:
[0021]將所述系統(tǒng)資源占用大模塊與所述被依賴模塊集成部署在所述本地服務器上;或者,
[0022]將所述系統(tǒng)資源占用大模塊獨立部署在所述本地服務器上,并將所述被依賴模塊獨立部署在所述遠程服務器上。
[0023]本發(fā)明還提出一種提高軟件系統(tǒng)運行效率的裝置,所述裝置包括:
[0024]檢測模塊,用于檢測本地服務器的負荷;
[0025]第一部署模塊,用于當所述檢測模塊檢測到所述本地服務器的負荷達到預設值時,將系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上。
[0026]進一步地,所述裝置還包括:
[0027]通信代理模塊,用于在系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上之后,在所述系統(tǒng)資源占用大模塊與被依賴模塊之間采用服務調(diào)用方式或消息訂閱方式進行交互。
[0028]進一步地,所述通信代理模塊包括:
[0029]第一發(fā)起子模塊,用于所述系統(tǒng)資源占用大模塊向所述被依賴模塊發(fā)起服務調(diào)用;
[0030]第一查詢子模塊,用于所述第一發(fā)起子模塊發(fā)起服務調(diào)用時,查詢系統(tǒng)模塊部署配置文件;
[0031]第一確認子模塊,根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程;或者,
[0032]根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器;
[0033]服務調(diào)用子模塊,當所述第一確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程時,則所述系統(tǒng)資源占用大模塊通過所述本地服務器完成對所述被依賴模塊的服務調(diào)用;或者,
[0034]當所述第一確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器時,則所述系統(tǒng)資源占用大模塊通過所述遠程服務器完成對所述被依賴模塊的服務調(diào)用。
[0035]進一步地,所述通信代理模塊包括:
[0036]第二發(fā)起子模塊,用于所述系統(tǒng)資源占用大模塊向所述被依賴模塊發(fā)起消息訂閱;
[0037]第二查詢子模塊,用于所述第二發(fā)起子模塊發(fā)起消息訂閱時,查詢系統(tǒng)模塊部署配置文件;
[0038]第二確認子模塊,根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程;或者,
[0039]根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器;
[0040]消息訂閱子模塊,用于當所述第二確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程時,則所述系統(tǒng)資源占用大模塊通過本地消息服務器完成對所述被依賴模塊的消息訂閱;或者,
[0041]當所述第二確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器時,則所述系統(tǒng)資源占用大模塊通過遠程消息服務器完成對所述被依賴模塊的消息訂閱。
[0042]進一步地,所述裝置還包括:
[0043]第二部署模塊,用于所述檢測模塊檢測到本地服務器的負荷達到預設值之前,
[0044]將所述系統(tǒng)資源占用大模塊與所述被依賴模塊集成部署在所述本地服務器上;或者,
[0045]將所述系統(tǒng)資源占用大模塊獨立部署在所述本地服務器上,并將所述被依賴模塊獨立部署在所述遠程服務器上。
[0046]本發(fā)明通過檢測到本地服務器的負荷達到預設值時,將系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上。如此,通過模塊的迀移分擔運行負荷,提高系統(tǒng)運行效率。且這種模塊的迀移對用戶層面是透明的,不影響系統(tǒng)提供的功能,根據(jù)系統(tǒng)運行的實際情況對模塊進行調(diào)配,具有很強的靈活性。同時,這種自行部署,無需維護人員在場,維護方便快捷。相對于傳統(tǒng)技術預先將某些模塊部署為一個獨立進程或部署到一臺服務器上,本發(fā)明根據(jù)本地服務器的負荷靈活調(diào)配模塊,使系統(tǒng)資源得到充分利用。
【附圖說明】
[0047]圖1為本發(fā)明提高軟件系統(tǒng)運行效率的方法的一種實施例的流程圖;
[0048]圖2為本發(fā)明提高軟件系統(tǒng)運行效率的方法的另一種實施例的流程圖;
[0049]圖3為本發(fā)明提高軟件系統(tǒng)運行效率的方法中系統(tǒng)資源占用大模塊與被依賴模塊之間交互的方法的一種實施例的流程圖;
[0050]圖4為本發(fā)明提高軟件系統(tǒng)運行效率的方法中系統(tǒng)資源占用大模塊與被依賴模塊之間交互的方法的另一種實施例的流程圖;
[0051]圖5為本發(fā)明提高軟件系統(tǒng)運行效率的方法的另一種實施例的流程圖;
[0052]圖6為本發(fā)明提高軟件系統(tǒng)運行效率的裝置的一種實施例的結(jié)構圖;
[0053]圖7為本發(fā)明提高軟件系統(tǒng)運行效率的裝置的另一種實施例的結(jié)構圖;
[0054]圖8為本發(fā)明提高軟件系統(tǒng)運行效率的裝置中通信代理模塊的一種實施例的結(jié)構圖;
[0055]圖9為本發(fā)明提高軟件系統(tǒng)運行效率的裝置中通信代理模塊的另一種實施例的結(jié)構圖;
[0056]圖10為本發(fā)明提高軟件系統(tǒng)運行效率的裝置的另一種實施例的結(jié)構圖;
[0057]圖11為本發(fā)明提高軟件系統(tǒng)運行效率的裝置在系統(tǒng)應用中各模塊集成部署的一種結(jié)構圖;
[0058]圖12為本發(fā)明提高軟件系統(tǒng)運行效率的裝置在系統(tǒng)應用中各模塊獨立部署的一種結(jié)構圖。
【具體實施方式】
[0059]本發(fā)明技術方案通過檢測到本地服務器的負荷達到預設值時,將系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上。如此,靈活地提高軟件系統(tǒng)運行效率。
[0060]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下舉實施例并參照附圖,對本發(fā)明進一步詳細說明。
[0061]圖1為為本發(fā)明提高軟件系統(tǒng)運行效率的方法的一種實施例的流程圖,
[0062]具體流程如下:
[0063]步驟SlOl,檢測到本地服務器的負荷達到預設值;
[0064]具體地,負荷的預設值可以是CPU的利用率、內(nèi)存的占有率等。
[0065]步驟S102,將系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上。
[0066]具體地,預先對系統(tǒng)各個模塊進行清晰的模塊劃分,并確定系統(tǒng)資源占用大模塊與被依賴模塊之間的依賴關系。其中,系統(tǒng)資源占用大模塊個數(shù)至少為一個,每個系統(tǒng)資源占用大模塊的被依賴模塊個數(shù)至少為一個。
[0067]其中,在步驟S102之后,本發(fā)明提高軟件系統(tǒng)運行效率的方法還如附圖2所示,具體步驟如下:
[0068]步驟S201,檢測到本地服務器的負荷達到預設值;
[0069]具體地,如圖1中的步驟SlOl;
[0070]步驟S202,將系統(tǒng)資源占用大模塊作為獨立進程部署到本地服務器或遠程服務器上;
[0071]具體地,如圖1中的步驟S102。
[0072]步驟S203,系統(tǒng)資源占用大模塊與被依賴模塊之間采用服務調(diào)用方式或消息訂閱方式進行交互。
[0073]具體地,在系統(tǒng)資源占用大模塊被部署在本地服務器或遠程服務器,即對系統(tǒng)資源占用大模塊的迀移,對用戶而言依然為透明,不影響系統(tǒng)提供的功能,因此,迀移后的系統(tǒng)資源占用大模塊與被依賴模塊可按照預先設置的服務調(diào)用方式或消息訂閱方式進行交互。
[0074]其中,步驟S203的具體方法見附圖3所示,具體步驟包括:
[0075]步驟S301,系統(tǒng)資源占用大模塊向被依賴模塊發(fā)起服務調(diào)用時,查詢系統(tǒng)模塊部署配置文件;
[0076]具體地,預先設置有記錄存儲模塊,用于記錄并存儲系統(tǒng)模塊部署配置文件,以便后續(xù)查詢;
[0077]其中,系統(tǒng)模塊部署配置文件包括:系統(tǒng)資源占用大模塊所在第一服務器IP地址及進程端口、所述被依賴模塊所在第二服務器IP地址及進程端口、所述本地消息服務器IP地址及進程端口、所述遠程消息服務器IP地址及進程端口;
[0078]其中,第一服務器為所述本地服務器;第二服務器為所述本地服務器或所述遠程服務器。
[0079]步驟S302,根據(jù)查詢結(jié)果確定系統(tǒng)資源占用大模塊與被依賴模塊為同一進程時,則系統(tǒng)資源占用大模塊通過本地服務器完成對被依賴模塊的服務調(diào)用;
[0080]具體地,通過查詢系統(tǒng)模塊部署配置文件可以分別得到系統(tǒng)資源占用大模塊和被依賴模塊所在的服務器IP地址及進程端口,從而可以明確得到系統(tǒng)資源占用大模塊與被依賴模塊是否為同一進程。
[0081]步驟S303,或者,根據(jù)查詢結(jié)果確定系統(tǒng)資源占用大模塊與被依賴模塊為不同進程或不同服務器時,則系統(tǒng)資源占用大模塊通過遠程服務器完成對被依賴模塊的服務調(diào)用。
[0082]具體地,通過查詢系統(tǒng)模塊部署配置文件可以分別得到系統(tǒng)資源占用大模塊和被依賴模塊所在的服務器IP地址及進程端口,從而可以明確得到系統(tǒng)資源占用大模塊與被依賴模塊是否為同一服務器的不同進程或者不同服務器。
[0083]其中,步驟S203的具體方法還可參見附圖4所示,具體步驟包括:
[0084]步驟S401,系統(tǒng)資源占用大模塊向被依賴模塊發(fā)起消息訂閱時,查詢系統(tǒng)模塊部署配置文件;
[0085]具體地,預先設置有記錄存儲模塊,用于記錄并存儲系統(tǒng)模塊部署配置文件,以便后續(xù)查詢;
[0086]其中,系統(tǒng)模塊部署配置文件包括:系統(tǒng)資源占用大模塊所在第一服務器IP地址及進程端口、所述被依賴模塊所在第二服務器IP地址及進程端口、所述本地消息服務器IP地址及進程端口、所述遠程消息服務器IP地址及進程端口;
[0087]其中,第一服務器為所述本地服務器;第二服務器為所述本地服務器或所述遠程服務器。
[0088]步驟S402,根據(jù)查詢結(jié)果確定系統(tǒng)資源占用大模塊與被依賴模塊為同一進程時,則系統(tǒng)資源占用大模塊通過本地消息服務器完成對被依賴模塊的消息訂閱;
[0089]具體地,通過查詢系統(tǒng)模塊部署配置文件可以分別得到系統(tǒng)資源占用大模塊和被依賴模塊所在的服務器IP地址及進程端口,從而可以明確得到系統(tǒng)資源占用大模塊與被依賴模塊是否為同一進程。
[0090]步驟S403,或者,根據(jù)查詢結(jié)果確定系統(tǒng)資源占用大模塊與被依賴模塊為不同進程或不同服務器時,則系統(tǒng)資源占用大模塊通過遠程消息服務器完成對被依賴模塊的服務調(diào)用消息訂閱。
[0091]具體地,通過查詢系統(tǒng)模塊部署配置文件可以分別得到系統(tǒng)資源占用大模塊和被依賴模塊所在的服務器IP地址及進程端口,從而可以明確得到系統(tǒng)資源占用大模塊與被依賴模塊是否為同一服務器的不同進程或者不同服務器。
[0092]圖5為本發(fā)明提高軟件系統(tǒng)運行效率的方法的另一種實施例的流程圖,即如步驟S503檢測到本地服務器的負荷達到預設值之前,提高軟件系統(tǒng)運行效率的處理方法,具體步驟如下:
[0093]步驟S501,將系統(tǒng)資源占用大模塊與被依賴模塊集成部署在本地服務器上;
[0094]步驟S502,將系統(tǒng)資源占用大模塊獨立部署在本地服務器上,并將被依賴模塊獨立部署的遠程服務器上。
[0095]具體地,模塊獨立部署還是集成部署取決于各個模塊運行任務承載的負荷,根據(jù)系統(tǒng)運行的實際情況進行調(diào)配,具有很強的靈活性。
[0096]圖6為本發(fā)明提高軟件系統(tǒng)運行效率的裝置的一種實施例的結(jié)構圖,提高運行效率裝置600包括模塊檢測模塊601和第一部署模塊602,
[0097]檢測模塊601,用于檢測本地服務器的負荷;
[0098]具體地,負荷的預設值可以是CPU的利用率、內(nèi)存的占有率等。
[0099]602,用于當檢測模塊601檢測到所述本地服務器的負荷達到預設值時,將系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上。
[0100]具體地,預先對系統(tǒng)各個模塊進行清晰的模塊劃分,并確定系統(tǒng)資源占用大模塊與被依賴模塊之間的依賴關系。其中,系統(tǒng)資源占用大模塊個數(shù)至少為一個,每個系統(tǒng)資源占用大模塊的被依賴模塊個數(shù)至少為一個。
[0101]圖7為本發(fā)明提高軟件系統(tǒng)運行效率的裝置的另一種實施例的結(jié)構圖,提高運行效率裝置600包括檢測模塊601、第一部署模塊602和通信代理模塊603,其中檢測模塊601、第一部署模塊602如圖6所示,
[0102]通信代理模塊603,用于在系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上之后,在所述系統(tǒng)資源占用大模塊與被依賴模塊之間采用服務調(diào)用方式或消息訂閱方式進行交互。
[0103]具體地,在系統(tǒng)資源占用大模塊被部署在本地服務器或遠程服務器,即對系統(tǒng)資源占用大模塊的迀移,對用戶而言依然為透明,不影響系統(tǒng)提供的功能,因此,迀移后的系統(tǒng)資源占用大模塊與被依賴模塊可按照預先設置的服務調(diào)用方式或消息訂閱方式進行交互。
[0104]其中,通信代理模塊603—種實施例的具體結(jié)構如圖8所示,通信代理模塊603包括第一發(fā)起子模塊60311、第一查詢子模塊60312、第一確認子模塊60313和服務調(diào)用子模塊60314,
[0105]第一發(fā)起子模塊60311,用于系統(tǒng)資源占用大模塊向被依賴模塊發(fā)起服務調(diào)用;
[0106]第一查詢子模塊60312,用于所述第一發(fā)起子模塊發(fā)起服務調(diào)用時,查詢系統(tǒng)模塊部署配置文件;
[0107]具體地,預先設置有記錄存儲模塊(圖未示),用于記錄并存儲系統(tǒng)模塊部署配置文件,以便后續(xù)查詢;
[0108]其中,系統(tǒng)模塊部署配置文件包括:系統(tǒng)資源占用大模塊所在第一服務器IP地址及進程端口、被依賴模塊所在第二服務器IP地址及進程端口、本地消息服務器IP地址及進程端口、所述遠程消息服務器IP地址及進程端口;
[0109]其中,第一服務器為本地服務器;第二服務器為本地服務器或遠程服務器。
[0110]第一確認子模塊60313,根據(jù)查詢結(jié)果確認系統(tǒng)資源占用大模塊與被依賴模塊為同一進程;或者,
[0111]根據(jù)查詢結(jié)果確認系統(tǒng)資源占用大模塊與被依賴模塊為不同進程或不同服務器;
[0112]具體地,由于通過查詢系統(tǒng)模塊部署配置文件可以分別得到系統(tǒng)資源占用大模塊和被依賴模塊所在的服務器IP地址及進程端口,從而可以明確得到系統(tǒng)資源占用大模塊與被依賴模塊是否為同一進程;
[0113]由于通過查詢系統(tǒng)模塊部署配置文件可以分別得到系統(tǒng)資源占用大模塊和被依賴模塊所在的服務器IP地址及進程端口,從而可以明確得到系統(tǒng)資源占用大模塊與被依賴模塊是否為同一服務器的不同進程或者不同服務器。
[0114]服務調(diào)用子模塊60314,當所述第一確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程時,則所述系統(tǒng)資源占用大模塊通過所述本地服務器完成對所述被依賴模塊的服務調(diào)用;或者,
[0115]當所述第一確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器時,則所述系統(tǒng)資源占用大模塊通過所述遠程服務器完成對所述被依賴模塊的服務調(diào)用。
[0116]其中,通信代理模塊603另一種實施例的具體結(jié)構如圖9所示,通信代理模塊603包括第二發(fā)起子模塊60321、第二查詢子模塊60322、第二確認子模塊60323和消息訂閱子模塊60324,
[0117]第二發(fā)起子模塊60321,用于系統(tǒng)資源占用大模塊向被依賴模塊發(fā)起消息訂閱;
[0118]第二查詢子模塊60322,用于第二發(fā)起子模塊發(fā)起消息訂閱時,查詢系統(tǒng)模塊部署配置文件;
[0119]具體地,預先設置有記錄存儲模塊(圖未示),用于記錄并存儲系統(tǒng)模塊部署配置文件,以便后續(xù)查詢;
[0120]其中,系統(tǒng)模塊部署配置文件包括:系統(tǒng)資源占用大模塊所在第一服務器IP地址及進程端口、被依賴模塊所在第二服務器IP地址及進程端口、本地消息服務器IP地址及進程端口、遠程消息服務器IP地址及進程端口;
[0121]其中,第一服務器為本地服務器;第二服務器為本地服務器或遠程服務器。
[0122]第二確認子模塊60323,根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程;或者,
[0123]根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器;
[0124]具體地,由于通過查詢系統(tǒng)模塊部署配置文件可以分別得到系統(tǒng)資源占用大模塊和被依賴模塊所在的服務器IP地址及進程端口,從而可以明確得到系統(tǒng)資源占用大模塊與被依賴模塊是否為同一進程;
[0125]由于通過查詢系統(tǒng)模塊部署配置文件可以分別得到系統(tǒng)資源占用大模塊和被依賴模塊所在的服務器IP地址及進程端口,從而可以明確得到系統(tǒng)資源占用大模塊與被依賴模塊是否為同一服務器的不同進程或者不同服務器。
[0126]消息訂閱子模塊60324,用于當所述第二確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程時,則所述系統(tǒng)資源占用大模塊通過本地消息服務器完成對所述被依賴模塊的消息訂閱;或者,
[0127]當所述第二確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器時,則所述系統(tǒng)資源占用大模塊通過遠程消息服務器完成對所述被依賴模塊的消息訂閱。
[0128]圖10為本發(fā)明提高軟件系統(tǒng)運行效率的裝置的另一種實施例的結(jié)構圖,提高運行效率裝置600包括檢測模塊601、第一部署模塊602、通信代理模塊603和第二部署模塊604,
[0129]其中,檢測模塊601、第一部署模塊602、通信代理模塊603的結(jié)構如7所示,
[0130]第二部署模塊604,用于所述檢測模塊檢測到本地服務器的負荷達到預設值之前,[0131 ]將系統(tǒng)資源占用大模塊與被依賴模塊集成部署在所述本地服務器上;
[0132]或者,
[0133]將系統(tǒng)資源占用大模塊獨立部署在本地服務器上,并將被依賴模塊獨立部署在遠程服務器上。
[0134]具體地,模塊獨立部署還是集成部署取決于各個模塊運行任務承載的負荷,根據(jù)系統(tǒng)運行的實際情況進行調(diào)配,具有很強的靈活性。
[0135]圖11為本發(fā)明提高軟件系統(tǒng)運行效率的裝置在系統(tǒng)應用中各模塊集成部署的一種結(jié)構圖,圖中集成部署包括:系統(tǒng)資源占用大模塊1101、通信代理模塊1102、第一被依賴模塊1103、第二被依賴模塊1104、記錄存儲模塊1105和本地消息服務器1106和本地服務器1107;
[0136]系統(tǒng)資源占用大模塊1101依賴于第一被依賴模塊1103與第二被依賴模塊1104;
[0137]當系統(tǒng)資源占用大模塊1101向第一被依賴模塊1103發(fā)起服務調(diào)用時,通信代理模塊1102查詢系統(tǒng)模塊部署配置文件,發(fā)現(xiàn)這系統(tǒng)資源占用大模塊1101和第一被依賴模塊1103為同一本地服務器1107的同一進程,通信代理模塊1102通過本地服務器1107返回給系統(tǒng)資源占用大模塊1101,系統(tǒng)資源占用大模塊1101利用該本地服務器1107完成對第一被依賴模塊1103的服務調(diào)用;
[0138]當系統(tǒng)資源占用大模塊1101向第二被依賴模塊1104發(fā)起訂閱消息時,通信代理模塊1102查詢系統(tǒng)模塊部署配置文件,查詢配置得知系統(tǒng)資源占用大模塊1101和第二被依賴模塊1104也為同一本地服務器1107的同一進程,則通信代理模塊1102向本地消息服務器1106訂閱本地消息,第二被依賴模塊1104發(fā)送消息通過本地消息服務器1106經(jīng)由通信代理模塊1102轉(zhuǎn)發(fā)給系統(tǒng)資源占用大模塊1201。
[0139]其中,這里系統(tǒng)模塊部署配置文件包括:系統(tǒng)資源占用大模塊1101所在本地服務器1107的IP地址及進程端口、第一被依賴模塊1103及第二被依賴模塊1104分別所在本地服務器1107的IP地址及進程端口、本地消息服務器1106的IP地址及進程端口、遠程消息服務器(圖未示)的IP地址及進程端口。
[0140]圖12為本發(fā)明提高軟件系統(tǒng)運行效率的裝置在系統(tǒng)應用中各模塊獨立部署的一種結(jié)構圖,圖中獨立部署包括:系統(tǒng)資源占用大模塊1201、通信代理模塊1202、第一被依賴模塊1203、第二被依賴模塊1204、記錄存儲模塊1205和遠程消息服務器1206和遠程服務器1207;[Ο141]系統(tǒng)資源占用大模塊1201依賴于第一被依賴模塊1203與第二被依賴模塊1204;
[0142]當系統(tǒng)資源占用大模塊1201向第一被依賴模塊1203發(fā)起服務調(diào)用時,通信代理模塊1202查詢系統(tǒng)模塊部署配置文件,發(fā)現(xiàn)這系統(tǒng)資源占用大模塊1201和第一被依賴模塊1203為不同進程或遠程服務器1207,通信代理模塊1202通過遠程服務器1207返回給系統(tǒng)資源占用大模塊1201,系統(tǒng)資源占用大模塊1201利用該遠程服務器1207完成對第一被依賴模塊1203的服務調(diào)用;
[0143]當系統(tǒng)資源占用大模塊1201向第二被依賴模塊1204發(fā)起訂閱消息時,通信代理模塊1202查詢系統(tǒng)模塊部署配置文件,查詢配置得知系統(tǒng)資源占用大模塊1201和第二被依賴模塊1204為不同進程或遠程服務器1207,則通信代理模塊1102向遠程消息服務器1206訂閱消息,第二被依賴模塊1204發(fā)送消息通過遠程消息服務器1206經(jīng)由通信代理模塊1202轉(zhuǎn)發(fā)給系統(tǒng)資源占用大模塊1201。
[0144]其中,這里系統(tǒng)模塊部署配置文件包括:系統(tǒng)資源占用大模塊1201所在本地服務器(圖未示)的IP地址及進程端口、第一被依賴模塊1203及第二被依賴模塊1204分別所在遠程服務器1207的IP地址及進程端口、本地消息服務器(圖未示)的IP地址及進程端口、遠程消息服務器1206的IP地址及進程端口。
[0145]另外,如果需要將某些模塊從集成部署環(huán)境中切換到獨立部署環(huán)境,則只需要修改系統(tǒng)模塊部署配置文件,修改系統(tǒng)各個模塊的部署情況,重新啟動服務器即可。
[0146]應當理解,本實施例提供的提高運行效率裝置600的功能模塊可以為軟件模塊或者軟硬件結(jié)合的功能模塊,其可以通過處理器執(zhí)行而實現(xiàn)如上所述的功能。并且,提高運行效率裝置600還可以具有其他功能模塊來實現(xiàn)靈活地提高軟件系統(tǒng)運行效率各個具體步驟,具體可以參閱以上方法實施例的相應描述。
[0147]另外,所屬技術領域的技術人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于計算機可讀取存儲介質(zhì)中,并被通訊內(nèi)部的處理器執(zhí)行,前述的程序在被執(zhí)行時處理器可以執(zhí)行包括上述方法實施例的全部或者部分步驟。其中,所述處理器可以作為一個或多個處理器芯片實施,或者可以為一個或多個專用集成電路(Applicat1n Specific Integrated Circuit,ASIC)的一部分;而前述的存儲介質(zhì)可以包括但不限于以下類型的存儲介質(zhì):閃存(Flash Memory)、存儲器(Read-Only Memory,R0M)、隨機存取存儲器(Random Access Memory,RAM)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0148]最后應說明的是:以上實施例僅用以說明本申請的技術方案,而非對其限制;盡管參照前述實施例對本申請進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本申請各實施例技術方案的范圍。
【主權項】
1.一種提高軟件系統(tǒng)運行效率的方法,其特征在于,所述方法包括: 檢測到本地服務器的負荷達到預設值時,將系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上。2.如權利要求1所述的方法,其特征在于, 在系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上之后,所述方法還包括: 所述系統(tǒng)資源占用大模塊與被依賴模塊之間采用服務調(diào)用方式或消息訂閱方式進行交互。3.如權利要求2所述的方法,其特征在于,所述系統(tǒng)資源占用大模塊與所述被依賴模塊之間采用服務調(diào)用方式進行交互,具體包括: 所述系統(tǒng)資源占用大模塊向所述被依賴模塊發(fā)起服務調(diào)用時,查詢系統(tǒng)模塊部署配置文件; 根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程時,則所述系統(tǒng)資源占用大模塊通過所述本地服務器完成對所述被依賴模塊的服務調(diào)用;或者, 根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器時,則所述系統(tǒng)資源占用大模塊通過所述遠程服務器完成對所述被依賴模塊的服務調(diào)用。4.如權利要求2所述的方法,其特征在于,所述系統(tǒng)資源占用大模塊與所述被依賴模塊之間采用消息訂閱方式進行交互,具體包括: 所述系統(tǒng)資源占用大模塊向所述被依賴模塊發(fā)起消息訂閱時,查詢系統(tǒng)模塊部署配置文件; 根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程時,則所述系統(tǒng)資源占用大模塊通過本地消息服務器完成對所述被依賴模塊的消息訂閱;或者, 根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器時,則所述系統(tǒng)資源占用大模塊通過遠程消息服務器完成對所述被依賴模塊的消息訂閱。5.如權利要求3或4所述的方法,其特征在于,所述系統(tǒng)模塊部署配置文件包括: 所述系統(tǒng)資源占用大模塊所在第一服務器IP地址及進程端口、所述被依賴模塊所在第二服務器IP地址及進程端口、所述本地消息服務器IP地址、所述遠程消息服務器IP地址; 所述第一服務器為所述本地服務器; 所述第二服務器為所述本地服務器或所述遠程服務器。6.如權利要求2所述的方法,其特征在于,在檢測到本地服務器的負荷達到預設值之前,所述方法還包括: 將所述系統(tǒng)資源占用大模塊與所述被依賴模塊集成部署在所述本地服務器上;或者, 將所述系統(tǒng)資源占用大模塊獨立部署在所述本地服務器上,并將所述被依賴模塊獨立部署在所述遠程服務器上。7.—種提高軟件系統(tǒng)運行效率的裝置,其特征在于,所述裝置包括: 檢測模塊,用于檢測本地服務器的負荷; 第一部署模塊,用于當所述檢測模塊檢測到所述本地服務器的負荷達到預設值時,將系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上。8.如權利要求7所述的裝置,其特征在于,所述裝置還包括: 通信代理模塊,用于在系統(tǒng)資源占用大模塊作為獨立進程部署到所述本地服務器或遠程服務器上之后,在所述系統(tǒng)資源占用大模塊與被依賴模塊之間采用服務調(diào)用方式或消息訂閱方式進行交互。9.如權利要求8所述的裝置,其特征在于,所述通信代理模塊包括: 第一發(fā)起子模塊,用于所述系統(tǒng)資源占用大模塊向所述被依賴模塊發(fā)起服務調(diào)用; 第一查詢子模塊,用于所述第一發(fā)起子模塊發(fā)起服務調(diào)用時,查詢系統(tǒng)模塊部署配置文件; 第一確認子模塊,根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程;或者, 根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器; 服務調(diào)用子模塊,當所述第一確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程時,則所述系統(tǒng)資源占用大模塊通過所述本地服務器完成對所述被依賴模塊的服務調(diào)用;或者, 當所述第一確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器時,則所述系統(tǒng)資源占用大模塊通過所述遠程服務器完成對所述被依賴模塊的服務調(diào)用。10.如權利要求8所述的裝置,其特征在于,所述通信代理模塊包括: 第二發(fā)起子模塊,用于所述系統(tǒng)資源占用大模塊向所述被依賴模塊發(fā)起消息訂閱; 第二查詢子模塊,用于所述第二發(fā)起子模塊發(fā)起消息訂閱時,查詢系統(tǒng)模塊部署配置文件; 第二確認子模塊,根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程;或者, 根據(jù)查詢結(jié)果確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器; 消息訂閱子模塊,用于當所述第二確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為同一進程時,則所述系統(tǒng)資源占用大模塊通過本地消息服務器完成對所述被依賴模塊的消息訂閱;或者, 當所述第二確認子模塊確認所述系統(tǒng)資源占用大模塊與所述被依賴模塊為不同進程或不同服務器時,則所述系統(tǒng)資源占用大模塊通過遠程消息服務器完成對所述被依賴模塊的消息訂閱。11.如權利要求8所述的裝置,其特征在于,所述裝置還包括: 第二部署模塊,用于所述檢測模塊檢測到本地服務器的負荷達到預設值之前, 將所述系統(tǒng)資源占用大模塊與所述被依賴模塊集成部署在所述本地服務器上;或者, 將所述系統(tǒng)資源占用大模塊獨立部署在所述本地服務器上,并將所述被依賴模塊獨立部署在所述遠程服務器上。
【文檔編號】G06F9/50GK105868011SQ201610187468
【公開日】2016年8月17日
【申請日】2016年3月29日
【發(fā)明人】楊濤
【申請人】上海斐訊數(shù)據(jù)通信技術有限公司