TW202315360A - 微服務分配方法、電子設備及儲存介質 - Google Patents

微服務分配方法、電子設備及儲存介質 Download PDF

Info

Publication number
TW202315360A
TW202315360A TW110136615A TW110136615A TW202315360A TW 202315360 A TW202315360 A TW 202315360A TW 110136615 A TW110136615 A TW 110136615A TW 110136615 A TW110136615 A TW 110136615A TW 202315360 A TW202315360 A TW 202315360A
Authority
TW
Taiwan
Prior art keywords
microservices
microservice
grouping
allocating
distance
Prior art date
Application number
TW110136615A
Other languages
English (en)
Inventor
劉佳宗
Original Assignee
大陸商深圳富桂精密工業有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商深圳富桂精密工業有限公司 filed Critical 大陸商深圳富桂精密工業有限公司
Publication of TW202315360A publication Critical patent/TW202315360A/zh

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申請提供一種微服務分配方法、電子設備及儲存介質,所述方法包括:獲取多個微服務之間的關聯資料;根據所述關聯資料對所述多個微服務進行分組;根據分組結果,對所述多個微服務進行資源的分配。透過本申請可以提高網路傳輸的效率。

Description

微服務分配方法、電子設備及儲存介質
本發明涉及網路傳輸領域,尤其涉及一種微服務分配方法、電子設備及儲存介質。
目前在微服務的架構下,用戶所發出的功能請求都是由多個微服務彼此協作後達成。而微服務的容器化部署架構,則會將這些微服務分散安裝至多台主機上,增加了網路傳輸所需的時間。
鑒於以上內容,有必要提供一種微服務分配方法、電子設備及儲存介質,能減少網路傳輸所需的時間,提高網路傳輸的效率。
本申請提供一種微服務分配方法,所述方法包括:獲取多個微服務之間的關聯資料;根據所述關聯資料對所述多個微服務進行分組;根據分組結果,對所述多個微服務進行資源的分配。
在一種可能的實現方式中,所述獲取微服務之間的關聯資料包括:利用分散式跟蹤工具監控所述多個微服務的網路流向;根據所述網路流向生成網路拓撲圖;透過所述網路拓撲圖獲取所述多個微服務之間的連線次數及傳輸資料量;將所述連線次數和所述傳輸資料量作為所述關聯資料。
在一種可能的實現方式中,所述根據所述關聯資料對所述多個微服務進行分組包括:根據所述連線次數和所述傳輸資料量計算得到所述多個微服務之間的距離;基於所述距離,透過分群演算法對所述多個微服務進行分組。
在一種可能的實現方式中,所述根據所述連線次數和所述傳輸資料量計算得到所述多個微服務之間的距離包括:從所述連線次數中提取出最大連線次數;從所述傳輸資料量中提取出最大傳輸資料量;根據所述連線次數、所述最大連線次數、所述傳輸資料量及所述最大傳輸資料量計算得到對應的兩個微服務之間的距離。
在一種可能的實現方式中,所述基於所述距離,透過分群演算法對所述多個微服務進行分組包括:隨機選取預設數量個聚類中心;計算任一微服務與各個所述聚類中心之間的距離,令所述任一微服務隸屬於距離所述任一微服務最近的所述聚類中心的組別;對所述任一微服務隸屬的聚類中心進行至少一次反覆運算更新,直至獲得達到預設條件的多個目標聚類中心;及計算任一微服務與各個所述目標聚類中心之間的距離,令所述任一微服務隸屬於距離所述任一微服務最近的所述目標聚類中心的組別,獲得分組結果。
在一種可能的實現方式中,對所述任一微服務隸屬的聚類中心進行至少一次反覆運算更新中的任意一次反覆運算更新包括:針對每個所述組別,重新計算所述組別的更新的聚類中心;計算所述任一微服務與各個所述更新的聚類中心之間的距離,令所述任一微服務隸屬於距離所述任一微服務最近的所述更新的聚類中心的組別。在一種可能的實現方式中,所述根據分組結果,對所述多個微服務進行資源的分配包括:根據分組結果得到多個節點組;將所述多個微服務分配至對應的節點組中;將每個所述節點組中的微服務分配至對應的計算節點。
在一種可能的實現方式中,所述方法還包括:部署依賴於所述微服務的微服務實例到對應的計算節點。
本申請還提供一種電子設備,所述電子設備包括處理器和儲存器,所述處理器用於執行所述儲存器中儲存的電腦程式時實現所述的微服務分配方法。
本申請還提供一種電腦可讀儲存介質,所述電腦可讀儲存介質上儲存有電腦程式,所述電腦程式被處理器執行時實現所述的微服務分配方法。
本申請公開的微服務分配方法及相關設備,透過根據微服務之間的關聯資料對所述多個微服務進行分組,並根據分組結果,對所述多個微服務進行資源的分配。透過將關聯性強的微服務分為一組並分配到相同的計算節點上,最大限度的減少了部署應用程式的計算節點之間的通信開銷,減少了網路傳輸所需的時間,提高了網路傳輸的效率。
為了使本申請的目的、技術方案和優點更加清楚,下面結合附圖和具體實施例對本申請進行詳細描述。
請參閱圖1,圖1為本申請一實施例的電子設備的示意圖。參閱圖1所示,所述電子設備1包括,但不僅限於,儲存器11和至少一個處理器12上述元件之間可以透過匯流排(例如圖1所示的13)連接,也可以直接連接。
所述電子設備1可以是電腦、手機、平板電腦、個人數位助理(Personal Digital Assistant,PDA)等安裝有應用程式的設備。本領域技術人員可以理解,所述示意圖1僅僅是電子設備1的示例,並不構成對電子設備1的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件,例如所述電子設備1還可以包括輸入輸出設備、網路接入設備、匯流排等。
如圖2所示,是本申請微服務分配方法的較佳實施例的流程圖。所述微服務分配方法應用在所述電子設備1中。根據不同的需求,該流程圖中步驟的順序可以改變,某些步驟可以省略。在本實施方式中,所述微服務分配方法包括:
S11、獲取多個微服務之間的關聯資料。
微服務是一種軟體架構,主張把應用程式拆分成多個服務單元。應用程式開發人將微服務及微服務實例提交到資料中心。各種微服務被分配給資料中心中合適的物理節點以滿足微服務的資源需求。在微服務的架構下,用戶所發出的功能請求都是由多個微服務彼此協作後達成。而微服務的容器化部署架構,則會將這些微服務分散安裝至多台主機上。
在本申請的一個實施例中,為了減少網路傳輸時間,需要根據微服務之間的關聯資料,對所述多個微服務進行分配管理。
在本申請的一個實施例中,所述獲取微服務之間的關聯資料包括:利用分散式跟蹤工具監控所述多個微服務的網路流向;根據所述網路流向生成網路拓撲圖;透過所述網路拓撲圖獲取所述多個微服務之間的連線次數及傳輸資料量;將所述連線次數和所述傳輸資料量作為所述關聯資料。
具體實施時,利用分散式跟蹤工具去監控所有微服務的網路流向,然後獲得各個節點之間的所述連線次數及所述傳輸資料量,例如,使用Appdash、Prometheus和Grafana開源監控工具,透過收集日誌和其他指標來支援基於微服務的系統的日誌記錄和監控。其中,Appdash是微服務執行跟蹤工具,用於提取微服務的運行時指標,Prometheus用於收集微服務生命週期中的其他時間序列指標,Grafana根據Prometheus搜集的監測資料提供資料視覺化能力。Appdash的架構主要有三個部分:用戶端、本地收集器和遠端收集器,開發人員編寫應用程式碼時需要把 Appdash 的用戶端添加進來,進而獲取開發人員編寫的應用的負載測試腳本並生成負載,並將所述負載發送到本地收集器,然後,本地收集器將資料發送到中心的Appdash伺服器從而監測微服務間的交互行為,生成網路拓撲圖,例如,圖3所示的網路拓撲圖,其中,A、B、C、D、E和F代表不同的微服務。獲取所述網路拓撲圖各個節點之間的交互資訊,從而得到所述連線次數及所述傳輸資料量。
S12、根據所述關聯資料對所述多個微服務進行分組。
得到所述關聯資料之後,需要根據所述關聯資料將相互作用關係強的微服務進行分組管理。
在本申請的一個實施例中,所述根據所述關聯資料對所述多個微服務進行分組包括:
(1)根據所述連線次數和所述傳輸資料量計算得到所述多個微服務之間的距離。具體實施時,從所述連線次數中提取出最大連線次數,從所述傳輸資料量中提取出最大傳輸資料量,根據所述連線次數、所述最大連線次數、所述傳輸資料量及所述最大傳輸資料量計算得到對應的兩個微服務之間的距離。實際操作時,可以採用如下距離公式計算兩個微服務之間的距離:d=1-[(所述連線次數/所述最大連線次數)*0.5 + (所述傳輸資料量/所述最大傳輸資料量量)*0.5],其中,d表示兩個微服務之間的距離。需要說明的是,透過距離公式可以看出,若兩個微服務之間的連線次數越多,資料傳輸量越大,那麼這兩個微服務之間的距離越小。若兩個微服務之間的連線次數越少,資料傳輸量越小,那麼這兩個微服務之間的距離越大。
(2)基於所述距離,透過分群演算法對所述多個微服務進行分組。具體實施時,可以採用k均值聚類演算法(k-means clustering algorithm,k-means)進行分群處理。首先,隨機選取預設數量個(例如,2個)聚類中心;然後計算任一微服務與各個所述聚類中心之間的距離,令所述任一微服務隸屬於距離所述任一微服務最近的所述聚類中心的組別;之後對所述任一微服務隸屬的聚類中心進行至少一次反覆運算更新,直至獲得達到預設條件(例如,反覆運算次數達到3次)的多個目標聚類中心;及計算任一微服務與各個所述目標聚類中心之間的距離,令所述任一微服務隸屬於距離所述任一微服務最近的所述目標聚類中心的組別,獲得分組結果。例如,圖4所述的分組結果。
對所述任一微服務隸屬的聚類中心進行至少一次反覆運算更新中的任意一次反覆運算更新包括:針對每個所述組別,重新計算所述組別的更新的聚類中心;計算所述任一微服務與各個所述更新的聚類中心之間的距離,令所述任一微服務隸屬於距離所述任一微服務最近的所述更新的聚類中心的組別。所述針對每個所述組別,重新計算所述組別的更新的聚類中心包括:將每個所述組別的聚類中心更新為隸屬所述組別的所有所述微服務的均值(或稱作重心),將所述均值作為所述更新的聚類中心。
需要說明的是,實際對所述多個微服務進行分組可採用不同的聚類演算法,並不限定於本申請實施例中所述的k均值聚類演算法。
依據分群演算法,傳輸資料量較多的微服務會被分配至同一組,如此在後續傳輸資料時,具有較大的概率無需與其他節點進行資料傳輸,從而提高資料傳輸效能。
利用聚類演算法對所述多個微服務進行分組,演算法思想簡單,收斂速度快,同時在對大規模資料集進行聚類分析時,分組高效且聚類效果較好。
S13、根據分組結果,對所述多個微服務進行資源的分配。
其中,所述資源可以是計算節點。透過所述步驟S12的分組,將關聯性強的微服務劃分為一組,接著需要利用分組結果對所述多個微服務進行計算節點的分配,從而提升網路傳輸效率。
在本申請的一個實施例中,所述根據分組結果,對所述多個微服務進行分配包括:根據分組結果得到多個節點組;將所述多個微服務分配至對應的節點組中;將每個所述節點組中的微服務分配至對應的計算節點。
具體實施時,將屬於同一組的微服務分配給同一計算節點下,當資料在當前計算節點進行計算時,無需遠距離傳輸給其他計算節點的對應的微服務,提高了網路傳輸的效率。
本申請透過將相互作用的微服務優先部署在相同的計算節點上,最大限度減少部署應用程式的物理節點之間的通信開銷,同時減少網路傳輸所需的時間,提高網路傳輸的效率。
作為一種可選地實施方式,所述方法還包括:部署依賴於所述多個微服務的微服務實例到對應的計算節點。
在本申請的一個實施例中,所述微服務實例是提供基礎服務功能的電腦程式。微服務實例具體可以是實現特定服務功能的服務程式。微服務實例具體可以是人臉識別微服務實例、語音合成微服務實例、圖像識別微服務實例和文字識別微服務實例等。將微服務分解為多個不同的微服務實例,提高了微服務體系結構的模組性,使得服務實例更容易理解、開發和測試。
請繼續參閱圖1,本實施例中,所述儲存器11可以是電子設備1的內部儲存器,即內置於所述電子設備1的儲存器。在其他實施例中,所述儲存器11也可以是電子設備1的外部儲存器,即外接於所述電子設備1的儲存器。
在一些實施例中,所述儲存器11用於儲存程式碼和各種資料,並在電子設備1的運行過程中實現高速、自動地完成程式或資料的存取。
所述儲存器11可以包括隨機存取儲存器,還可以包括非易失性儲存器,例如硬碟、儲存器、插接式硬碟、智慧儲存卡(Smart Media Card,SMC)、安全數位(Secure Digital,SD)卡、快閃儲存器卡(Flash Card)、至少一個磁碟儲存元件、快閃儲存器元件、或其他易失性固態儲存元件。
在一實施例中,所述處理器12可以是中央處理單元(Central Processing Unit,CPU),還可以是其他通用處理器、數位訊號處理器 (Digital Signal Processor,DSP)、專用積體電路 (Application Specific Integrated Circuit,ASIC)、現場可程式設計閘陣列(Field-Programmable Gate Array,FPGA)或者其他可程式設計邏輯元件、分立門或者電晶體邏輯元件、分立硬體元件等。通用處理器可以是微處理器或者所述處理器也可以是其它任何常規的處理器等。
所述儲存器11中的程式碼和各種資料如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以儲存在一個電腦可讀取儲存介質中。基於這樣的理解,本申請實現上述實施例方法中的全部或部分流程,例如微服務分配的方法中的步驟,也可以透過電腦程式來指令相關的硬體來完成,所述的電腦程式可儲存於一電腦可讀儲存介質中,所述電腦程式在被處理器執行時,可實現上述各個方法實施例的步驟。其中,所述電腦程式包括電腦程式代碼,所述電腦程式代碼可以為原始程式碼形式、物件代碼形式、可執行文檔或某些中間形式等。所述電腦可讀介質可以包括:能夠攜帶所述電腦程式代碼的任何實體或裝置、記錄介質、隨身碟、移動硬碟、磁碟、光碟、電腦儲存器、唯讀記憶體(ROM,Read-Only Memory)等。
可以理解的是,以上所描述的模組劃分,為一種邏輯功能劃分,實際實現時可以有另外的劃分方式。另外,在本申請各個實施例中的各功能模組可以集成在相同處理單元中,也可以是各個模組單獨物理存在,也可以兩個或兩個以上模組集成在相同單元中。上述集成的模組既可以採用硬體的形式實現,也可以採用硬體加軟體功能模組的形式實現。
最後應說明的是,以上實施例僅用以說明本申請的技術方案而非限制,儘管參照較佳實施例對本申請進行了詳細說明,本領域的普通技術人員應當理解,可以對本申請的技術方案進行修改或等同替換,而不脫離本申請技術方案的精神和範圍。
1:電子設備 11:儲存器 12:處理器 13:匯流排 S11~S13:步驟
為了更清楚地說明本申請實施例或習知技術中的技術方案,下面將對實施例或習知技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1是本申請實施例提供的一種微服務分配方法的電子設備的結構示意圖。
圖2是本申請實施例提供的一種微服務分配方法的流程圖。
圖3是本申請實施例提供的一種示例性網路拓撲圖。
圖4是本申請實施例提供的一種示例性微服務分組結果。
如下具體實施方式將結合上述附圖進一步說明本申請。
S11~S13:步驟

Claims (10)

  1. 一種微服務分配方法,應用於電子設備,其中,所述微服務分配方法包括: 獲取多個微服務之間的關聯資料; 根據所述關聯資料對所述多個微服務進行分組; 根據分組結果,對所述多個微服務進行資源的分配。
  2. 如請求項1所述的微服務分配方法,其中,所述獲取多個微服務之間的關聯資料包括: 利用分散式跟蹤工具監控所述多個微服務的網路流向; 根據所述網路流向生成網路拓撲圖; 透過所述網路拓撲圖獲取所述多個微服務之間的連線次數及傳輸資料量; 將所述連線次數和所述傳輸資料量作為所述關聯資料。
  3. 如請求項2所述的微服務分配方法,其中,所述根據所述關聯資料對所述多個微服務進行分組包括: 根據所述連線次數和所述傳輸資料量計算得到所述多個微服務之間的距離; 基於所述距離,透過分群演算法對所述多個微服務進行分組。
  4. 如請求項3所述的微服務分配方法,其中,所述根據所述連線次數和所述傳輸資料量計算得到所述多個微服務之間的距離包括: 從所述連線次數中提取出最大連線次數; 從所述傳輸資料量中提取出最大傳輸資料量; 根據所述連線次數、所述最大連線次數、所述傳輸資料量及所述最大傳輸資料量計算得到對應的兩個微服務之間的距離。
  5. 如請求項4所述的微服務分配方法,其中,所述基於所述距離,透過分群演算法對所述多個微服務進行分組包括: 隨機選取預設數量個聚類中心; 計算任一微服務與各個所述聚類中心之間的距離,令所述任一微服務隸屬於距離所述任一微服務最近的所述聚類中心的組別; 對所述任一微服務隸屬的聚類中心進行至少一次反覆運算更新,直至獲得達到預設條件的多個目標聚類中心;及 計算任一微服務與各個所述目標聚類中心之間的距離,令所述任一微服務隸屬於距離所述任一微服務最近的所述目標聚類中心的組別,獲得分組結果。
  6. 如請求項5所述的微服務分配方法,其中,對所述任一微服務隸屬的聚類中心進行至少一次反覆運算更新中的任意一次反覆運算更新包括: 針對每個所述組別,重新計算所述組別的更新的聚類中心; 計算所述任一微服務與各個所述更新的聚類中心之間的距離,令所述任一微服務隸屬於距離所述任一微服務最近的所述更新的聚類中心的組別。
  7. 如請求項5所述的微服務分配方法,其中,所述根據分組結果,對所述多個微服務進行資源的分配包括: 根據分組結果得到多個節點組; 將所述多個微服務分配至對應的節點組中; 將每個所述節點組中的微服務分配至對應的計算節點。
  8. 如請求項7所述的微服務分配方法,其中,所述方法還包括: 部署依賴於所述微服務的微服務實例到對應的計算節點。
  9. 一種電子設備,其中,所述電子設備包括處理器和儲存器,所述處理器用於執行儲存器中儲存的電腦程式以實現如請求項1至請求項8中任意一項所述的微服務分配方法。
  10. 一種電腦可讀儲存介質,其中,所述電腦可讀儲存介質儲存有至少一個指令,所述至少一個指令被處理器執行時實現如請求項1至請求項8中任意一項所述的微服務分配方法。
TW110136615A 2021-09-15 2021-09-30 微服務分配方法、電子設備及儲存介質 TW202315360A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111082918.1A CN115834689A (zh) 2021-09-15 2021-09-15 微服务分配方法、电子设备及存储介质
CN202111082918.1 2021-09-15

Publications (1)

Publication Number Publication Date
TW202315360A true TW202315360A (zh) 2023-04-01

Family

ID=85515576

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110136615A TW202315360A (zh) 2021-09-15 2021-09-30 微服務分配方法、電子設備及儲存介質

Country Status (2)

Country Link
CN (1) CN115834689A (zh)
TW (1) TW202315360A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117311801B (zh) * 2023-11-27 2024-04-09 湖南科技大学 一种基于网络化结构特征的微服务拆分方法

Also Published As

Publication number Publication date
CN115834689A (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
WO2020253347A1 (zh) 一种容器集群管理方法、装置及系统
US11392416B2 (en) Automated reconfiguration of real time data stream processing
US11144566B2 (en) Distributed balanced optimization for an Extract, Transform, and Load (ETL) job
CN109074377B (zh) 用于实时处理数据流的受管理功能执行
WO2019001092A1 (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
US8898422B2 (en) Workload-aware distributed data processing apparatus and method for processing large data based on hardware acceleration
CN103970604A (zh) 基于MapReduce架构实现图处理的方法和装置
US20150128150A1 (en) Data processing method and information processing apparatus
CN109710406B (zh) 数据分配及其模型训练方法、装置、及计算集群
US20180248934A1 (en) Method and System for a Scheduled Map Executor
CN105094981A (zh) 一种数据处理的方法及装置
US10162830B2 (en) Systems and methods for dynamic partitioning in distributed environments
US20200272526A1 (en) Methods and systems for automated scaling of computing clusters
US20200159594A1 (en) Systems and methods for dynamic partitioning in distributed environments
CN113900810A (zh) 分布式图处理方法、系统及存储介质
CN106940712B (zh) 序列生成方法与设备
TW202315360A (zh) 微服務分配方法、電子設備及儲存介質
JP5108011B2 (ja) バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム
CN114217920A (zh) 作业调度方法和装置、计算机机群、计算机可读存储介质
CN108696559B (zh) 流处理方法及装置
CN113934767A (zh) 一种数据处理的方法及装置、计算机设备和存储介质
CN113377866A (zh) 一种虚拟化数据库代理服务的负载均衡方法及装置
CN112631996A (zh) 日志搜索方法及装置
CN112749121A (zh) 基于pcie总线的多芯片互联系统
US11442792B2 (en) Systems and methods for dynamic partitioning in distributed environments