TWI761330B - 通訊通道處理方法和系統 - Google Patents
通訊通道處理方法和系統 Download PDFInfo
- Publication number
- TWI761330B TWI761330B TW106104782A TW106104782A TWI761330B TW I761330 B TWI761330 B TW I761330B TW 106104782 A TW106104782 A TW 106104782A TW 106104782 A TW106104782 A TW 106104782A TW I761330 B TWI761330 B TW I761330B
- Authority
- TW
- Taiwan
- Prior art keywords
- heartbeat
- channel
- data channel
- state
- data
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/20—Manipulation of established connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/30—Connection release
- H04W76/38—Connection release triggered by timers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
Abstract
本發明實施例提供了一種通訊通道處理方法和系統,其中,所述通訊通道包括:主控進程與工作進程之間的心跳通道和資料通道,所述方法包括:確定與心跳通道具有關聯關係的至少一個資料通道;對確定的所述至少一個資料通道進行檢測;在檢測到任一資料通道處於斷開狀態時,斷開所述心跳通道,以使心跳超時;在確定心跳超時後,結束當前任務。通過本發明實施例保證了資料通道和心跳通道的狀態的一致性,避免了任務被長時間擱置無法執行,以及系統資源的佔用問題。
Description
本發明關於通訊技術領域,特別是關於一種通訊通道處理方法和一種通訊通道處理系統。
在分布式系統中,程式通常運行在不同的節點上。程式間的通訊一般分為兩類,一、心跳通訊,通過週期性的心跳信號同步對方的狀態;二、資料通訊,發送內容為使用者邏輯相關的資料,如執行的任務指令和指令執行的結果。心跳通訊的網路鏈路,我們稱之為心跳通道;資料通訊的網路鏈路,我們稱之為資料通道。
在產品的實際運維過程中,特別是在集群網路壓力大的時候,會出現部分或所有資料通道不通但是心跳通道依然連通的現象。當系統處於該狀態的時候,主控進程(如,Master進程)發給工作進程(如,Worker進程)的命令無法得到執行,或者工作進程無法告訴主控進程任務的執行結果;由於主控進程認為工作進程仍正常運行,進而導致主控進程端的執行任務長時間無法結束,任務被擱置,嚴重影響了系統的正常運行。
鑒於上述問題,提出了本發明實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種通訊通道處理方法和系統。
為了解決上述問題,本發明揭露了一種通訊通道處理方法,其中,所述通訊通道包括:主控進程與工作進程之間的心跳通道和資料通道,所述方法包括:確定與心跳通道具有關聯關係的至少一個資料通道;對確定的所述至少一個資料通道進行檢測;在檢測到任一資料通道處於斷開狀態時,斷開所述心跳通道,以使心跳超時;在確定心跳超時後,結束當前任務。
較佳地,所述在確定心跳超時後,結束當前任務,包括:若在第一預置時間內所述主控進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並通過所述主控進程重調度所述當前任務;若在第二預置時間內所述工作進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並退出所述工作進程,以結束所述工作進程中執行的所述當前任務。
較佳地,所述第二預置時間與所述心跳訊息的發送間隔時間之和小於所述第一預置時間。
較佳地,所述在檢測到任一資料通道狀態為斷開狀態
時,斷開所述心跳通道,以使心跳超時,包括:在檢測到任一資料通道狀態為斷開狀態時,將工作進程的狀態更新為超時狀態,並控制工作進程停止向主控進程發送心跳訊息,以使主控進程將所述主控進程中保存的工作進程的狀態更新為超時狀態。
較佳地,所述在檢測到任一資料通道狀態為斷開狀態時,斷開所述心跳通道,以使心跳超時,包括:在檢測到任一資料通道狀態為斷開狀態時,控制主控進程停止向工作進程發送心跳訊息,以使工作進程的狀態更新為超時狀態。
較佳地,所述對確定的所述至少一個資料通道進行檢測,包括:通過設定檢測訊息判斷所述資料通道是否處於斷開狀態;其中,所述設定檢測訊息為空的資料通訊包。
較佳地,所述通過設定檢測訊息判斷所述資料通道是否處於斷開狀態,包括:在檢測到所述資料通道中的資料訊息發送失敗時,在所述資料通道中週期性地發送所述設定檢測訊息;若在第一設定時間閾值內,所述設定檢測訊息持續發送失敗,則確定所述資料通道處於斷開狀態;否則,確定所述資料通道處於連接狀態。
較佳地,所述方法還包括:在檢測到所述資料通道中的資料訊息發送失敗時,將所述資料通道對應的狀態機由連通狀態置為不確定狀態;
以及,在所述設定檢測訊息持續發送失敗時,將所述資料通道對應的狀態機由不確定狀態置為斷開狀態。
較佳地,所述資料通道中的資料訊息與所述設定檢測訊息通過不同的進程進行分發和傳輸。
較佳地,所述心跳通道基於使用者資料報協議UDP實現通訊:由所述工作進程通過所述心跳通道上報至所述主控進程的第一心跳訊息中包括所述工作進程的UDP心跳地址;其中,所述UDP心跳地址用於使所述主控進程根據所述UDP心跳地址向所述工作進程發送第二心跳訊息。
較佳地,在所述確定與心跳通道具有關聯關係的至少一個資料通道之前,所述方法還包括:建立所述心跳通道與所述至少一個資料通道之間的關聯關係;其中,所述心跳通道與所述至少一個資料通道是相互獨立的通訊通道。
較佳地,所述建立所述心跳通道與至少一個資料通道之間的關聯關係,包括:判斷當前資料通道中是否攜帶設定標識;若所述當前資料通道中攜帶有所述設定標識,則將所述心跳通道的地址資訊發送至所述當前資料通道,以根據所述地址資訊建立所述當前資料通道與所述心跳通道之間的關聯關係。
本發明還揭露了一種通訊通道處理系統,其中,所述
通訊通道包括:主控進程與工作進程之間的心跳通道和資料通道,所述系統包括:確定模組,用於確定與心跳通道具有關聯關係的至少一個資料通道;檢測模組,用於對確定的所述至少一個資料通道進行檢測;斷開模組,用於在檢測到任一資料通道處於斷開狀態時,斷開所述心跳通道,以使心跳超時;結束模組,用於在確定心跳超時後,結束當前任務。
較佳地,所述結束模組,用於若在第一預置時間內所述主控進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並通過所述主控進程重調度所述當前任務;以及,若在第二預置時間內所述工作進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並退出所述工作進程,以結束所述工作進程中執行的上述當前任務。
較佳地,所述第二預置時間與所述心跳訊息的發送間隔時間之和小於所述第一預置時間。
較佳地,所述斷開模組,用於在檢測到任一資料通道狀態為斷開狀態時,將工作進程的狀態更新為超時狀態,並控制工作進程停止向主控進程發送心跳訊息,以使主控進程將所述主控進程中保存的所述工作進程的狀態更新為超時狀態。
較佳地,所述斷開模組,用於在檢測到任一資料通道
狀態為斷開狀態時,控制主控進程停止向工作進程發送心跳訊息,以使工作進程的狀態更新為超時狀態。
較佳地,所述檢測模組,用於通過設定檢測訊息判斷所述資料通道是否處於斷開狀態;其中,所述設定檢測訊息為空的資料通訊包。
較佳地,所述檢測模組,用於在檢測到所述資料通道中的資料訊息發送失敗時,在所述資料通道中週期性地發送所述設定檢測訊息;以及,若在第一設定時間閾值內,所述設定檢測訊息持續發送失敗,則確定所述資料通道處於斷開狀態;否則,確定所述資料通道處於連接狀態。
較佳地,所述系統還包括:狀態配置模組,用於在檢測到所述資料通道中的資料訊息發送失敗時,將所述資料通道對應的狀態機由連通狀態置為不確定狀態;以及,在所述設定檢測訊息持續發送失敗時,將所述資料通道對應的狀態機由不確定狀態置為斷開狀態。
較佳地,所述資料通道中的資料訊息與所述設定檢測訊息通過不同的進程進行分發和傳輸。
較佳地,所述心跳通道基於使用者資料報協議UDP實現通訊:由所述工作通過所述心跳通道上報至所述主控進程的第一心跳訊息中包括所述工作進程的UDP心跳地址;其中,所述UDP心跳地址用於使所述主控進程根據所述UDP心跳地址向所述工作進程發送第二心跳訊息。
較佳地,所述系統包括:
關係建立模組,用於在所述確定模組確定與心跳通道具有關聯關係的至少一個資料通道之前,建立所述心跳通道與所述至少一個資料通道之間的關聯關係;其中,所述心跳通道與所述至少一個資料通道是相互獨立的通訊通道。
較佳地,所述關係建立模組,用於判斷當前資料通道中是否攜帶設定標識;以及,在所述當前資料通道中攜帶有所述設定標識時,將所述心跳通道的地址資訊發送至所述當前資料通道,以根據所述地址資訊建立所述當前資料通道與所述心跳通道之間的關聯關係。
本發明實施例包括以下優點:本發明實施例所述的通訊通道處理方案可以先確定與心跳通道具有關聯關係的至少一個資料通道,然後對與心跳通道關聯的至少一個資料通道進行檢測;在檢測到任一資料通道處於斷開狀態時,斷開所述心跳通道,以使心跳超時,在確定心跳超時後,結束當前任務。可見,在本發明實施例中,實現了心跳通道與資料通道的關聯,使得在資料通道不通時,心跳通道也會隨之主動斷開,保證了雙通道的狀態一致性。也即,當資料通道異常時,通訊通道也主動斷開,使得資料通道和通訊通道均處於異常狀態,進而可以及時結束當前任務,避免了當前任務的長時間、始終無法執行的問題,降低了系統資源的佔用。
102:步驟
104:步驟
106:步驟
108:步驟
202:步驟
204:步驟
206:步驟
208:步驟
210:步驟
1002:確定模組
1004:檢測模組
1006:斷開模組
1008:結束模組
10012:關係建立模組
1002:確定模組
1004:檢測模組
10010:狀態配置模組
1006:斷開模組
1008:結束模組
圖1是本發明實施例一中一種通訊通道處理方法的步驟流程圖;圖2是本發明實施例二中一種通訊通道處理方法的步驟流程圖;圖3是本發明實施例三中一種Master進程與Worker進程的通訊架構圖;圖4是本發明實施例三中一種心跳機制的原理圖;圖5是本發明實施例三中一種設定檢測訊息的發送和處理流程圖;圖6是本發明實施例三中一種資料通道狀態機的轉換示意圖;圖7是本發明實施例三中一種關聯模組的示意圖;圖8是本發明實施例三中一種Worker進程的心跳狀態機的轉換示意圖;圖9是本發明實施例三中一種Master進程的心跳狀態機的轉換示意圖;圖10是本發明實施例四中一種通訊通道處理系統的結構方塊圖;圖11是本發明實施例四中一種較佳的通訊通道處理系統的結構方塊圖。
為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發明作進一步詳細
的說明。
在分布式系統中,程式通常運行在不同的節點上,進程或程式間的通訊一般分為兩類:一、心跳通訊,通過週期性的心跳訊息來同步對方的狀態;二、資料通訊,發送與使用者邏輯相關的資料內容,如執行的任務指令、指令執行的結果等。其中,心跳通訊的網路鏈路可以稱之為心跳通道,資料通訊的網路鏈路可以稱之為資料通道。在本實施例中,所述通訊通道包括但不僅限於:主控進程與工作進程之間的心跳通道和資料通道。
參照圖1,示出了本發明實施例一中一種通訊通道處理方法的步驟流程圖。在本實施例種,所述通訊通道處理方法包括:
步驟102,確定與心跳通道具有關聯關係的至少一個資料通道。
如前所述,主控進程和工作進程間可以包括心跳通道和資料通道。一般地,心跳通道可以有一條,資料通道則可以有多條。在本實施例中,心跳通道與部分資料通道可以不完全關聯,具體的關聯情況可以根據實際需求進行配置。例如,根據資料通道的作用及/或重要程度,可以配置部分資料通道與心跳通道關聯,另一部分資料通道則與心跳通道獨立,在保證了必要資料通道與心跳通道關聯的同時避免了不必要資料通道對心跳通道的影響,降低了資
源佔用。需要說明的是,所述與心跳通道具有關聯關係的至少一個資料通道與所述心跳通道間可以是邏輯關係上的關聯,通道的網路鏈路本身仍是相互獨立的。
步驟104,對確定的所述至少一個資料通道進行檢測。
在本實施例中,可以採用任意一種適當的方式對確定的所述至少一個資料通道進行檢測。所述檢測具體可以是指檢測所述與心跳通道具有關聯關係的各個資料通道的網路鏈路是否暢通。例如,可以但不限於通過在資料通道中週期性的發送檢測訊息的方式來檢測各個資料通道的網路鏈路是否暢通。
步驟106,在檢測到任一資料通道處於斷開狀態時,斷開所述心跳通道,以使心跳超時。
在本實施例中,在檢測到任一資料通道處於斷開狀態時,可以通過任意一種適當的方式來斷開心跳通道,以使心跳超時。例如,可以以發送通知訊息的方式觸發所述心跳通道的斷開;或者直接控制所述心跳通道的斷開,本實施例對此不作限制。
步驟108,在確定心跳超時後,結束當前任務。如前所述,在實際應用中,經常會出現資料通道的網路鏈路不通(斷開)而心跳通道依然暢通的問題。當系統處於資料通道斷開、心跳通道暢通的狀態時,資料通道的斷開會造成發送端(如,主控進程)發給接收端(如,工作進程)的命令無法得到執行,及/或,接收端無法將任務的執行
結果發送給發送端的問題。然而,心跳通道的暢通,卻使得心跳信號仍然可以正常發送和傳輸,發送端始終認為接收端處於正常運行狀態,進而導致發送端的執行任務被長時間擱置無法結束,任務一直被保留(hang)。
在本實施例中,在心跳通道斷開後,心跳信號將無法通過所述心跳通道繼續正常發送和傳遞,心跳超時,接收端和發送端也就無法繼續保持同步,發送端和接收端相互之間會認為對方都處於異常狀態,在發送端和接收端異常狀態時,當前任務可以被正常的結束及/或重調度,避免了當前任務的長期擱置,當前任務始終無法完成的問題。綜上所述,本實施例所述的通訊通道處理方法可以先確定與心跳通道具有關聯關係的至少一個資料通道,然後對與心跳通道關聯的至少一個資料通道進行檢測;在檢測到任一資料通道處於斷開狀態時,斷開所述心跳通道,以使心跳超時,在確定心跳超時後,結束當前任務。可見,在本實施例中,實現了心跳通道與資料通道的關聯,使得在資料通道不通時,心跳通道也會隨之主動斷開,保證了雙通道的狀態一致性。也即,當資料通道異常時,通訊通道也主動斷開,使得資料通道和通訊通道均處於異常狀態,進而可以及時結束當前任務,避免了當前任務的長時間擱置、始終無法執行的問題,降低了系統資源的佔用。
在分布式系統中,Master-Worker模式是常用的並行
模式之一,Master-Worker模式的核心思想是:系統中的Master進程和Worker進程協作工作。其中,Master進程負責接收和分配任務;Worker進程負責處理任務。Worker進程在任務處理完成後,可以將任務的處理結果返回給Master進程,Master進程可以對Worker進程返回的處理結果進行歸納匯總。在本實施例中,主控進程和工作進程分別可以分別是對應Master進程和Worker進程。主控進程與工作進程之間的通訊通道可以包括:心跳通道和資料通道。
參照圖2,示出了本發明實施例二中一種通訊通道處理方法的步驟流程圖。在本實施例中,所述通訊通道處理方法包括:
步驟202,建立心跳通道與至少一個資料通道之間的關聯關係。
在本實施例中,可以根據實際情況建立心跳通道與資料通道之間的關聯關係,例如,可以將所述至少一個資料通道關聯到同一個心跳通道上,以提高系統的可擴展性。需要說明的是,所述心跳通道與所述至少一個資料通道只是具有關聯關係,通道本身仍是相互獨立的。
一種可行的建立所述心跳通道與至少一個資料通道之間的關聯關係的方式可以如下:判斷當前資料通道中是否攜帶設定標識;若所述當前資料通道中攜帶有所述設定標識,則將所述心跳通道的地址資訊發送至所述當前資料通道,以根據所述地址資訊建立所述當前資料通道與所述心
跳通道之間的關聯關係。換而言之,若當前資料通道中攜帶有設定標識,則說明該當前資料通道是與心跳通道相關聯的:該當前資料通道不通,即認為網路是不通的,進而讓心跳也超時,使得心跳通道也斷開。而不攜帶設定標識的資料通道(也即,不與心跳通道關聯的資料通道)不通,不會影響心跳通道的狀態。其中,在實際應用中,可以根據資料通道在通訊過程中的重要程度或者根據業務需求來配置設定標識,如,在重要程度較高的資料通道中配置設定標識;或者,在頻繁被使用的資料通道中配置設定標識。
需要說明的是,所述通訊通道可以基於過任意一種適當的協議進行通訊。例如,Master進程與Worker進程之間的心跳通道可以基於UDP協議實現通訊:由所述Worker進程通過所述心跳通道上報至所述主控進程的第一心跳訊息中包括所述Worker進程的UDP心跳地址;其中,所述UDP心跳地址可以用於使所述Master進程根據所述UDP心跳地址向所述Worker進程發送第二心跳訊息。其中,一種具體實現方式可以如下:Worker進程:Worker進程啟動後,可以對本地的UDP端口進行動態監聽,並主動與Master進程建立起網路連接,上報第一條心跳訊息。其中,Worker進程上報的每條心跳訊息中都包括通過監聽確定的所述Worker進程的UDP心跳地址。Master進程:Master進程接收Worker進程上報的第一心跳訊息,獲取所述第一心跳訊息中攜帶的所述Worker進
程的UDP心跳地址,根據獲取的所述Worker進程的UDP心跳地址向所述Worker進程發送第二心跳訊息,進而實現Master進程與Worker進程之間的心跳通訊。可見,在本實施例中,使用簡單的UDP協議承載心跳通訊,使得心跳協議非常簡單,無論通訊引起的網路負載還是收發方的處理邏輯都降低到最小,可以適應大規模併發的分布式應用。
步驟204,確定與心跳通道具有關聯關係的至少一個資料通道。
在本實施例中,可以根據上述步驟202中預先建立的資料通道與心跳通道之間的關聯關係來確定與心跳通道具有關聯關係的至少一個資料通道。
步驟206,對確定的所述至少一個資料通道進行檢測。
在本實施例中,一種可行的檢測資料通道狀態的方式可以如下:通過設定檢測訊息,判斷所述資料通道是否處於斷開狀態。其中,所述設定檢測訊息為空的資料通訊包。
具體地,在檢測到所述資料通道中的資料訊息發送失敗時,在所述資料通道中週期性地發送所述設定檢測訊息;若在第一設定時間閾值內,所述設定檢測訊息持續發送失敗,則確定所述資料通道處於斷開狀態;否則,確定所述資料通道處於連接狀態。
在本實施例中,較佳地,在檢測到所述資料通道中的
資料訊息發送失敗時,還可以將所述資料通道對應的狀態機由連通狀態置為不確定狀態;以及,在所述設定檢測訊息持續發送失敗時,將所述資料通道對應的狀態機由不確定狀態置為斷開狀態。
需要說明的是,所述資料通道中的資料訊息與所述設定檢測訊息可以通過不同的進程進行分發和傳輸。從而減少所述設定檢測訊息對Master進程及/或Worker進程的影響。
步驟208,在檢測到任一資料通道處於斷開狀態時,斷開所述心跳通道,以使心跳超時。
在本實施例中,較佳地,可以在檢測到任一資料通道狀態為斷開狀態時,將Worker進程的狀態更新為超時狀態,並控制Worker進程停止向Master進程發送心跳訊息,以使Master進程將所述Master進程中保存的所述Worker進程的狀態更新為超時狀態。
較佳地,可以在檢測到任一資料通道狀態為斷開狀態時,控制Master進程停止向Worker進程發送心跳訊息,以使Worker進程的狀態更新為超時狀態。
步驟210,在確定心跳超時後,結束當前任務。
在本實施例中,心跳超時至少可以包括如下兩種情況:針對Master進程:若在第一預置時間內所述Master進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並通過所述Master進程重調度所述當前任
務。
針對Worker進程:若在第二預置時間內所述Worker進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並退出所述Worker進程,以結束所述Worker進程中執行的所述當前任務。
可見,本實施例所述的通訊通道處理方法實現了心跳通道與資料通道的狀態關聯,使得在資料通道不通時,心跳通道也會隨之主動斷開,保證了雙通道的狀態一致性。也即,當資料通道異常時,通訊通道也主動斷開,使得資料通道和通訊通道均處於異常狀態,進而可以及時結束當前任務,避免了當前任務的長時間擱置、始終無法執行的問題,降低了系統資源的佔用。
其次,心跳通道與資料通道之間的網路鏈路仍是相互獨立的,心跳通道可以基於簡單的UDP協議實現通訊,協議非常簡單,無論通訊引起的網路負載還是收發方的處理邏輯都降低到最小,使得本實施例所述的通訊通道處理方法可以適應大規模併發的分布式應用。此外,本實施例所述的通訊通道處理方法允許多條資料通道關聯到同一條心跳通道上,進一步提高了系統的擴展性。
結合上述實施例,本實施例通過一個具體實例對所述通訊通道處理方法進行詳細說明。
參照圖3,示出了本發明實施例三中一種Master進程
與Worker進程的通訊架構圖。
在本實施例中,分布式系統中的Worker進程端與Master進程端各自包含心跳通道模組(HB模組)和資料通道模組(PM模組)。
其中,HB模組,用於維護心跳通道,如,圖3中的通道1,所述通道1用於傳遞心跳訊息(HB訊息)。PM模組,用於建立和維護資料通道,如,圖3中的通道2和通道3,所述通道2和通道3用於收發資料訊息(PB訊息)。
在本實施例中,可以在通訊雙方之間(Worker進程端與Master進程端之間)可以通過HB模組維護一個心跳通道,以及通過PM模組維護多個資料通道。進一步地,在本發明中,可以建立一個心跳通道與至少一個資料通道之間的關聯關係。
具體地,可以判斷當前資料通道中是否攜帶設定標識;若所述當前資料通道中攜帶有所述設定標識,則將所述心跳通道的地址資訊發送至所述當前資料通道,然後根據所述地址資訊建立所述當前資料通道與所述心跳通道之間的關聯關係。例如,在當前資料通道不通時,可以根據當前資料通道中攜帶的、用於指示與所述當前資料通道關聯的心跳通道的地址資訊確定所述心跳通道,然後,將指示當前資料通道不通的訊息發送至確定的心跳通道,進而實現資訊的交互和共享。其中,當前資料通道(PM模組)和心跳通道(HB模組)之間的訊息的交互和共享可
以但不僅限於基於Notify()方法的調用來實現。
具體地,可以通過如下幾個方面對所述Master進程與Worker進程的通訊架構進行說明。
在本實施例中,心跳機制有兩種功能:一、讓對方知道自己的狀態(是否處於LIVE);二、Master進程主動停心跳讓Worker進程超時,簡稱等死。
下面結合圖4,對心跳機制的第二中功能進行說明。
參照圖4,示出了本發明實施例三中一種心跳機制的原理圖。
如圖4,在t0時刻,Worker進程啟動。在t1時刻,Master進程收到Worker第一次心跳,將Master進程中的Worker進程狀態置為HBS_LIVE狀態(活動狀態,也即,第一狀態),並開始向Worker進程發送心跳訊息(實線表示)。在t2時刻,Worker進程第一次收到Master進程的心跳,進入HBS_LIVE狀態(第一狀態)。在t3時刻,發生了斷網,此後Master進程和Worker進程依然會發送心跳訊息,但是Master進程和Worker進程相互之間都無法收到對方的發送心跳訊息(虛線表示)。Worker進程在WorkerTerminatedInterval時間(工作進程終止時間,也即,第二預置時間)內依然沒有收到心跳訊息後,在t5時刻,Worker進程進入HBS_TERMINATED狀態(終止狀態,也即第二狀態),此時,Worker進程
可以直接結束並退出。Master進程在MasterTimeoutInterval(主控進程超時時間)之後,也即,在t4時刻,將Worker進程在Master進程中置為HBS_TIMEOUT狀態(超時狀態)。t4刻開始,Master進程不再給Worker進程發送心跳訊息,在持續MasterTerminatedInterval時間(主控進程終止時間,也即,第一預置時間)之後,在t6時刻,Master進程中的Worker進程狀態被置為HBS_TERMINATED狀態(終止狀態,也即第二狀態)。
較佳地,在設置MasterTerminatedInterval時間(第一預置時間)和WorkerTerminatedInterval時間(第二預置時間)時,可以使第一預置時間=第二預置時間+心跳訊息的發送間隔時間(HBLoopInterval),以確保Master進程中的Worker進程狀態為HBS_TERMINATED的時候,Worker進程一定進入了HBS_TIMEOUT狀態,經過這一階段後,Master進程可以確定Worker進程已經超時,從而可以進行相應的清理動作。
如圖3所示,Master進程與Worker進程之間通過PM模組建立有一路或者多路的資料通道。在本實施例中,在建立的每條資料通道中都可以添加有一設定檢測訊息(如,PING訊息),以實現對資料通道的檢測。通過PING訊息可以探測資料通道的連通性,並反饋到自身的
狀態機以確定資料通道是否處於連通的狀態。
參照圖5,示出了本發明實施例三中一種設定檢測訊息的發送和處理流程圖。在本實施例中,當PM模組給對方發送資料訊息(PB訊息)不通的時候,PM模組會週期性地通過相同的網路鏈路發送空包,即PING訊息。例如,PM模組可以將PING訊息打包以message pack(資訊包)的形式發送給RPC handler(RPC處理程式,Remote Procedure Call Protocol,RPC,遠程過程調用協議)。其中,PB訊息和PING訊息的接收端口可以是一樣的,但是它們的處理線程可以是分開的,從而減少PING訊息對於接收端的影響。
進一步地,參照圖6,示出了本發明實施例三中一種資料通道狀態機的轉換示意圖。在本實施例中,在網路正常時,資料通道狀態為CHANNEL_CONNECTED狀態時,發送PB訊息,不發送PING訊息。當第一個PB訊息發送失敗的時候,狀態機轉入CHANNEL_UNSTABLE狀態,發送PB訊息,並週期性地發送PING訊息。在CHANNEL_UNSTABLE狀態下,若PB訊息或PING訊息發送成功,則重新切換至CHANNEL_CONNECTED狀態;若,PB訊息或PING訊息發送失敗,且,WaitTimeChannel_Unstable_MaxTime(通道不穩定的最大時限),則狀態機轉入CHANNEL_DISCONNECTED狀態,發送PB訊息,並週期性地發送PING訊息。換而言之,如果PB訊息和PING訊息一直發送失敗,且持續時
間大於等於Channel_Unstable_MaxDuration時間,狀態機轉入CHANNEL_DISCONNECTED狀態,即資料通道不通狀態。其中,WaitTime是指:PB訊息或PING訊息持續發送失敗的時長。
因為心跳無論從通訊協議還是處理邏輯上都比使用者資料要簡單,所以假定如果心跳不通那麼雙方的網路也是不通的,在實際的分布式系統應用過程中也僅遇到過心跳通而資料通道不通的問題。為了讓心跳通道更真實地反映通訊雙方的網路狀態,可以將資料通道的狀態關聯到心跳通道上,即資料通道不通時,心跳通道也應該斷開。
參照圖7,示出了本發明實施例三中一種關聯模組的示意圖。在本實施例中,資料通道和心跳通道之間的關係可以是N:1的關係。其中,N1。可以將N個資料通道的狀態匯總到一起,只要有一個資料通道不通,即認為網路是不通的,通過觸發HeartBeat模組的Timeout事件,讓心跳也超時,使得心跳通道也斷開。如圖7所示,資料通道1、資料通道2...資料通道N的通道狀態(如,EVENT_PB_CONNECT,PB資料通道連接暢通;EVENT_PB_DISCONNECT,PB資料通道連接斷開)可以匯總到Remote1中,對Remote1進行監控,若任一資料通
道不通,則可以控制心跳超時(HeartBeatTimeout),使得心跳通道也斷開。
參照圖8,示出了本發明實施例三中一種Worker進程的心跳狀態機的轉換示意圖。在本實施例中,當資料通道不通(PB不通)時,Worker進程進入HBS_TIMEOUT狀態(超時狀態)。在超時狀態下,Worker停止向Master進程發送心跳訊息,以使Master進程在接收不到Worker進程發送的心跳訊息時,將Master進程中保留的Worker進程的狀態置為超時狀態,重新調度任務。其中,WorkerTerminatedInterval時間、MasterTimeoutInterval(Master超時時間)和HBLoopInterval可以根據實際集群環境需要進行配置,本實施例對此不作限制。
參照圖9,示出了本發明實施例三中一種Master進程的心跳狀態機的轉換示意圖。在本實施例中,Master進程的狀態並沒有任何增減,但是觸發條件增加了一個:資料通道不通(PB不通)事件,當PB不通時,Master進程可以把對應的Worker進程的狀態置為HBS_TIMEOUT,Master進程可以通過停發心跳訊息,使得Worker進程也進入HBS_TIMEOUT狀態。
可見,在本實施例中,實現了心跳通道與資料通道的關聯,使得在資料通道不通時,心跳通道也會隨之主動斷開,保證了雙通道的狀態一致性。當資料通道異常時,通訊通道也主動斷開,可以對任務進行重配置,以重新啟動任務,避免了任務被長時間擱置無法執行、佔用系統資源的問題。
其次,心跳通道與資料通道之間是相對獨立的,心跳通道使用簡單的UDP協議承載心跳通訊,使得心跳協議非常簡單,無論通訊引起的網路負載還是收發方的處理邏輯都降低到最小,適應大規模併發的分布式應用。此外,在本實施例中,允許多條資料通道關聯到同一條心跳通道上,因此,大大提高了系統的擴展性。
在上述實施例的基礎上,本實施例還提供了一種通訊通道處理系統。所述通訊通道包括:主控進程與工作進程之間的心跳通道和資料通道。參照圖10,示出了本發明實施例四中一種通訊通道處理系統的結構方塊圖。在本實施例中,所述通訊通道處理系統可以包括:
確定模組1002,用於確定與心跳通道具有關聯關係的至少一個資料通道。
檢測模組1004,用於對確定的所述至少一個資料通道進行檢測。
斷開模組1006,用於在檢測到任一資料通道處於斷
開狀態時,斷開所述心跳通道,以使心跳超時。
結束模組1008,用於在確定心跳超時後,結束當前任務。
可見,本實施例所述的述的通訊通道處理系統實現了心跳通道與資料通道的狀態關聯,使得在資料通道不通時,心跳通道也會隨之主動斷開,保證了雙通道的狀態一致性。也即,當資料通道異常時,通訊通道也主動斷開,使得資料通道和通訊通道均處於異常狀態,進而可以及時結束,避免了當前任務的長時間擱置、始終無法執行的問題,降低了系統資源的佔用。
參照圖11,示出了本發明實施例四中一種較佳的通訊通道處理系統的結構方塊圖。
在本實施例中,較佳地,所述系統還可以包括:狀態配置模組10010,用於在檢測到所述資料通道中的資料訊息發送失敗時,將所述資料通道對應的狀態機由連通狀態置為不確定狀態;以及,在所述設定檢測訊息持續發送失敗時,將所述資料通道對應的狀態機由不確定狀態置為斷開狀態。
較佳地,所述系統還可以包括:關係建立模組10012,用於在所述確定模組確定1002確定與心跳通道具有關聯關係的至少一個資料通道之前,建立所述心跳通道與所述至少一個資料通道之間的關聯關係;其中,所述心跳通道與所述至少一個資料通道是相互獨立的通訊通道。進一步較佳地,所述關係建立模組10012,具體用於可以
判斷當前資料通道中是否攜帶設定標識;以及,在所述當前資料通道中攜帶有所述設定標識時,將所述心跳通道的地址資訊發送至所述當前資料通道,以根據所述地址資訊建立所述當前資料通道與所述心跳通道之間的關聯關係。
在本實施例中,一較佳地,所述結束模組1008,具體可以用於若在第一預置時間內所述主控進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並通過所述主控進程重調度所述當前任務;以及,若在第二預置時間內所述工作進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並退出所述工作進程,以結束所述工作進程中執行的上述當前任務。其中,所述第二預置時間與所述心跳訊息的發送間隔時間之和小於所述第一預置時間。
在本實施例中,一較佳地,所述斷開模組1006,具體可以用於在檢測到任一資料通道狀態為斷開狀態時,將工作進程的狀態更新為超時狀態,並控制工作進程停止向主控進程發送心跳訊息,以使主控進程將所述主控進程中保存的所述工作進程的狀態更新為超時狀態。另一較佳地,所述斷開模組1006,具體可以用於在檢測到任一資料通道狀態為斷開狀態時,控制主控進程停止向工作進程發送心跳訊息,以使工作進程的狀態更新為超時狀態。
較佳地,所述檢測模組1004,具體可以用於通過設定檢測訊息判斷所述資料通道是否處於斷開狀態;其中,所述設定檢測訊息為空的資料通訊包。進一步較佳地,所
述檢測模組1002,具體可以用於在檢測到所述資料通道中的資料訊息發送失敗時,在所述資料通道中週期性地發送所述設定檢測訊息;以及,若在第一設定時間閾值內,所述設定檢測訊息持續發送失敗,則確定所述資料通道處於斷開狀態;否則,確定所述資料通道處於連接狀態。
在本實施例中,所述資料通道中的資料訊息與所述設定檢測訊息可以通過不同的進程進行分發和傳輸。所述心跳通道可以基於使用者資料報協議UDP實現通訊:由所述工作通過所述心跳通道上報至所述主控進程的第一心跳訊息中包括所述工作進程的UDP心跳地址;其中,所述UDP心跳地址用於使所述主控進程根據所述UDP心跳地址向所述工作進程發送第二心跳訊息。
綜上,本實施例所述的通訊通道處理系統實現了心跳通道與資料通道的狀態關聯,使得在資料通道不通時,心跳通道也會隨之主動斷開,保證了雙通道的狀態一致性。也即,當資料通道異常時,通訊通道也主動斷開,使得資料通道和通訊通道均處於異常狀態,進而可以及時結束當前任務,避免了當前任務的長時間擱置、始終無法執行的間題,降低了系統資源的佔用。
其次,心跳通道與資料通道之間的網路鏈路仍是相互獨立的,心跳通道可以基於簡單的UDP協議實現通訊,協議非常簡單,無論通訊引起的網路負載還是收發方的處理邏輯都降低到最小,使得本實施例所述的通訊通道處理方法可以適應大規模併發的分布式應用。此外,本實施例
所述的通訊通道處理方法允許多條資料通道關聯到同一條心跳通道上,進一步提高了系統的擴展性。
對於裝置實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
所屬技術領域中具有通常知識者應明白,本發明實施例的實施例可提供為方法、裝置、或電腦電腦程式產品。因此,本發明實施例可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明實施例可採用在一個或多個其中包含有電腦可用程式代碼的電腦可用儲存媒介(包括但不限於磁盤儲存器、CD-ROM、光學儲存器等)上實施的電腦電腦程式產品的形式。
在一個典型的配置中,所述電腦設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。記憶體可能包括電腦可讀媒介中的非永久性儲存器,隨機存取儲存器(RAM)及/或非易失性記憶體等形式,如只讀儲存器(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒介的示例。電腦可讀媒介包括永久性和非永久性、可行動和非可行動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資
料。電腦的儲存媒介的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取儲存器(SRAM)、動態隨機存取儲存器(DRAM)、其他類型的隨機存取儲存器(RAM)、只讀儲存器(ROM)、電可抹除可編程只讀儲存器(EEPROM)、快閃記憶體或其他記憶體技術、只讀光碟只讀儲存器(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、卡式磁帶,磁帶磁磁盤儲存或其他磁性儲存設備或任何其他非傳輸媒介,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒介不包括非持續性的電腦可讀媒體(transitory media),如調變的資料信號和載波。
本發明實施例是參照根據本發明實施例的方法、終端設備(系統)、和電腦電腦程式產品的流程圖及/或方塊圖來描述的。應理解可由電腦電腦程式指令實現流程圖及/或方塊圖中的每一流程及/或方塊、以及流程圖及/或方塊圖中的流程及/或方塊的結合。可提供這些電腦電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可編程資料處理終端設備的處理器以產生一個機器,使得通過電腦或其他可編程資料處理終端設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦電腦程式指令也可儲存在能引導電腦或其他可編程資料處理終端設備以特定方式工作的電腦可讀儲存器中,使得儲存在該電腦可讀儲存器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多
個流程及/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦電腦程式指令也可裝載到電腦或其他可編程資料處理終端設備上,使得在電腦或其他可編程終端設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可編程終端設備上執行的指令提供用於實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
儘管已描述了本發明實施例的較佳實施例,但所屬技術領域中具有通常知識者一旦得知了基本進步性概念,則可對這些實施例做出另外的變更和修改。所以,所附申請專利範圍意欲解釋為包括較佳實施例以及落入本發明實施例範圍的所有變更和修改。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,並不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本發明所提供的一種通訊通道處理方法和一種通訊通道處理系統進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於所屬技術領域中具有通常知識者,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
Claims (22)
- 一種通訊通道處理方法,其中,所述通訊通道包括:主控進程與工作進程之間的心跳通道和資料通道,所述方法包括:確定與心跳通道具有關聯關係的至少一個資料通道;對確定的所述至少一個資料通道進行檢測;在檢測到任一資料通道處於斷開狀態時,斷開所述心跳通道,以使心跳超時;在確定心跳超時後,結束當前任務,其中,在所述確定與心跳通道具有關聯關係的至少一個資料通道之前,所述方法還包括:建立所述心跳通道與所述至少一個資料通道之間的關聯關係;其中,所述心跳通道與所述至少一個資料通道是相互獨立的通訊通道。
- 根據申請專利範圍第1項所述的方法,其中,所述在確定心跳超時後,結束當前任務,包括:若在第一預置時間內所述主控進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並通過所述主控進程重調度所述當前任務;若在第二預置時間內所述工作進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並退出所述工作進程,以結束所述工作進程中執行的所述當前任務。
- 根據申請專利範圍第2項所述的方法,其中,所述第二預置時間與所述心跳訊息的發送間隔時間之和小於 所述第一預置時間。
- 根據申請專利範圍第1項所述的方法,其中,所述在檢測到任一資料通道狀態為斷開狀態時,斷開所述心跳通道,以使心跳超時,包括:在檢測到任一資料通道狀態為斷開狀態時,將工作進程的狀態更新為超時狀態,並控制工作進程停止向主控進程發送心跳訊息,以使主控進程將所述主控進程中保存的工作進程的狀態更新為超時狀態。
- 根據申請專利範圍第1項所述的方法,其中,所述在檢測到任一資料通道狀態為斷開狀態時,斷開所述心跳通道,以使心跳超時,包括:在檢測到任一資料通道狀態為斷開狀態時,控制主控進程停止向工作進程發送心跳訊息,以使工作進程的狀態更新為超時狀態。
- 根據申請專利範圍第1項所述的方法,其中,所述對確定的所述至少一個資料通道進行檢測,包括:通過設定檢測訊息判斷所述資料通道是否處於斷開狀態;其中,所述設定檢測訊息為空的資料通訊包。
- 根據申請專利範圍第6項所述的方法,其中,所述通過設定檢測訊息判斷所述資料通道是否處於斷開狀態,包括:在檢測到所述資料通道中的資料訊息發送失敗時,在所述資料通道中週期性地發送所述設定檢測訊息;若在第一設定時間閾值內,所述設定檢測訊息持續發 送失敗,則確定所述資料通道處於斷開狀態;否則,確定所述資料通道處於連接狀態。
- 根據申請專利範圍第7項所述的方法,其中,還包括:在檢測到所述資料通道中的資料訊息發送失敗時,將所述資料通道對應的狀態機由連通狀態置為不確定狀態;以及,在所述設定檢測訊息持續發送失敗時,將所述資料通道對應的狀態機由不確定狀態置為斷開狀態。
- 根據申請專利範圍第6至8項中任一項所述的方法,其中,所述資料通道中的資料訊息與所述設定檢測訊息通過不同的進程進行分發和傳輸。
- 根據申請專利範圍第1項所述的方法,其中,所述心跳通道基於使用者資料報協議UDP實現通訊:由所述工作進程通過所述心跳通道上報至所述主控進程的第一心跳訊息中包括所述工作進程的UDP心跳地址;其中,所述UDP心跳地址用於使所述主控進程根據所述UDP心跳地址向所述工作進程發送第二心跳訊息。
- 根據申請專利範圍第1項所述的方法,其中,所述建立所述心跳通道與至少一個資料通道之間的關聯關係,包括:判斷當前資料通道中是否攜帶設定標識;若所述當前資料通道中攜帶有所述設定標識,則將所述心跳通道的地址資訊發送至所述當前資料通道,以根據 所述地址資訊建立所述當前資料通道與所述心跳通道之間的關聯關係。
- 一種通訊通道處理系統,其中,所述通訊通道包括:主控進程與工作進程之間的心跳通道和資料通道,所述系統包括:確定模組,用於確定與心跳通道具有關聯關係的至少一個資料通道;檢測模組,用於對確定的所述至少一個資料通道進行檢測;斷開模組,用於在檢測到任一資料通道處於斷開狀態時,斷開所述心跳通道,以使心跳超時;結束模組,用於在確定心跳超時後,結束當前任務;關係建立模組,用於在所述確定模組確定與心跳通道具有關聯關係的至少一個資料通道之前,建立所述心跳通道與所述至少一個資料通道之間的關聯關係;其中,所述心跳通道與所述至少一個資料通道是相互獨立的通訊通道。
- 根據申請專利範圍第12項所述的系統,其中,所述結束模組,用於若在第一預置時間內所述主控進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並通過所述主控進程重調度所述當前任務;以及,若在第二預置時間內所述工作進程未接收到通過所述心跳通道發送的心跳訊息,則確定心跳超時,並退出所述工作進程,以結束所述工作進程中執行的上述當前任務。
- 根據申請專利範圍第13項所述的系統,其中,所述第二預置時間與所述心跳訊息的發送間隔時間之和小於所述第一預置時間。
- 根據申請專利範圍第12項所述的系統,其中,所述斷開模組,用於在檢測到任一資料通道狀態為斷開狀態時,將工作進程的狀態更新為超時狀態,並控制工作進程停止向主控進程發送心跳訊息,以使主控進程將所述主控進程中保存的所述工作進程的狀態更新為超時狀態。
- 根據申請專利範圍第12項所述的系統,其中,所述斷開模組,用於在檢測到任一資料通道狀態為斷開狀態時,控制主控進程停止向工作進程發送心跳訊息,以使工作進程的狀態更新為超時狀態。
- 根據申請專利範圍第12項所述的系統,其中,所述檢測模組,用於通過設定檢測訊息判斷所述資料通道是否處於斷開狀態;其中,所述設定檢測訊息為空的資料通訊包。
- 根據申請專利範圍第17項所述的系統,其中,所述檢測模組,用於在檢測到所述資料通道中的資料訊息發送失敗時,在所述資料通道中週期性地發送所述設定檢測訊息;以及,若在第一設定時間閾值內,所述設定檢測訊息持續發送失敗,則確定所述資料通道處於斷開狀態;否則,確定所述資料通道處於連接狀態。
- 根據申請專利範圍第18項所述的系統,其中,還包括: 狀態配置模組,用於在檢測到所述資料通道中的資料訊息發送失敗時,將所述資料通道對應的狀態機由連通狀態置為不確定狀態;以及,在所述設定檢測訊息持續發送失敗時,將所述資料通道對應的狀態機由不確定狀態置為斷開狀態。
- 根據申請專利範圍第17至19項中任一項所述的系統,其中,所述資料通道中的資料訊息與所述設定檢測訊息通過不同的進程進行分發和傳輸。
- 根據申請專利範圍第12項所述的系統,其中,所述心跳通道基於使用者資料報協議UDP實現通訊:由所述工作通過所述心跳通道上報至所述主控進程的第一心跳訊息中包括所述工作進程的UDP心跳地址;其中,所述UDP心跳地址用於使所述主控進程根據所述UDP心跳地址向所述工作進程發送第二心跳訊息。
- 根據申請專利範圍第12項所述的系統,其中,所述關係建立模組,用於判斷當前資料通道中是否攜帶設定標識;以及,在所述當前資料通道中攜帶有所述設定標識時,將所述心跳通道的地址資訊發送至所述當前資料通道,以根據所述地址資訊建立所述當前資料通道與所述心跳通道之間的關聯關係。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610136917.3A CN107181780B (zh) | 2016-03-10 | 2016-03-10 | 通信通道处理方法和系统 |
CN201610136917.3 | 2016-03-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201735595A TW201735595A (zh) | 2017-10-01 |
TWI761330B true TWI761330B (zh) | 2022-04-21 |
Family
ID=59790025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106104782A TWI761330B (zh) | 2016-03-10 | 2017-02-14 | 通訊通道處理方法和系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11150946B2 (zh) |
CN (1) | CN107181780B (zh) |
TW (1) | TWI761330B (zh) |
WO (1) | WO2017152807A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107181780B (zh) | 2016-03-10 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 通信通道处理方法和系统 |
CN111045700B (zh) * | 2018-10-15 | 2023-05-05 | 阿里巴巴集团控股有限公司 | 数据更新方法、装置、系统、存储介质及电子设备 |
CN111371631B (zh) * | 2018-12-25 | 2022-04-19 | 成都鼎桥通信技术有限公司 | 一种心跳机制检测方法、终端设备和存储介质 |
CN110673942B (zh) * | 2019-09-29 | 2022-06-17 | 北京浪潮数据技术有限公司 | 一种云平台的异步进程结束方法、装置及云平台服务器 |
CN114024784B (zh) * | 2021-09-28 | 2024-05-28 | 浙江大华技术股份有限公司 | 通信设备控制方法、通信设备和计算机存储介质 |
CN113965482B (zh) * | 2021-10-19 | 2023-03-24 | 北京天融信网络安全技术有限公司 | 基于gRPC的数据传输方法、装置及存储介质 |
CN115137447A (zh) * | 2022-09-02 | 2022-10-04 | 深圳北芯医疗科技有限公司 | 治疗仪的部件保护方法、设备和治疗仪 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231126A (zh) * | 2011-07-28 | 2011-11-02 | 大唐移动通信设备有限公司 | 一种实现多核处理器中核间备份的方法及系统 |
US20120042030A1 (en) * | 2010-08-12 | 2012-02-16 | International Business Machines Corporation | High availability management system for stateless components in a distributed master-slave component topology |
CN102739391A (zh) * | 2012-06-13 | 2012-10-17 | 烽火通信科技股份有限公司 | 基于异步通信实现同步命令的方法 |
CN103036904A (zh) * | 2012-12-27 | 2013-04-10 | 东方通信股份有限公司 | 一种在通信网络中使用udp协议进行数据可靠传输的方法 |
US20130151714A1 (en) * | 2011-12-13 | 2013-06-13 | Motorola Mobility, Inc. | Method and apparatus for adaptive network heartbeat message for tcp channel |
CN104936269A (zh) * | 2014-03-18 | 2015-09-23 | 华为终端有限公司 | 一种传输心跳消息的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574661B1 (en) * | 1997-09-26 | 2003-06-03 | Mci Communications Corporation | Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client |
US7953114B2 (en) * | 2004-08-06 | 2011-05-31 | Ipeak Networks Incorporated | System and method for achieving accelerated throughput |
US8005065B2 (en) * | 2007-09-11 | 2011-08-23 | Qualcomm Incorporated | Keep-alive for wireless networks |
CN107181780B (zh) | 2016-03-10 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 通信通道处理方法和系统 |
-
2016
- 2016-03-10 CN CN201610136917.3A patent/CN107181780B/zh active Active
-
2017
- 2017-02-14 TW TW106104782A patent/TWI761330B/zh active
- 2017-03-03 WO PCT/CN2017/075576 patent/WO2017152807A1/zh active Application Filing
-
2018
- 2018-09-10 US US16/127,134 patent/US11150946B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120042030A1 (en) * | 2010-08-12 | 2012-02-16 | International Business Machines Corporation | High availability management system for stateless components in a distributed master-slave component topology |
CN102231126A (zh) * | 2011-07-28 | 2011-11-02 | 大唐移动通信设备有限公司 | 一种实现多核处理器中核间备份的方法及系统 |
US20130151714A1 (en) * | 2011-12-13 | 2013-06-13 | Motorola Mobility, Inc. | Method and apparatus for adaptive network heartbeat message for tcp channel |
CN102739391A (zh) * | 2012-06-13 | 2012-10-17 | 烽火通信科技股份有限公司 | 基于异步通信实现同步命令的方法 |
CN103036904A (zh) * | 2012-12-27 | 2013-04-10 | 东方通信股份有限公司 | 一种在通信网络中使用udp协议进行数据可靠传输的方法 |
CN104936269A (zh) * | 2014-03-18 | 2015-09-23 | 华为终端有限公司 | 一种传输心跳消息的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2017152807A1 (zh) | 2017-09-14 |
US20180373563A1 (en) | 2018-12-27 |
TW201735595A (zh) | 2017-10-01 |
CN107181780A (zh) | 2017-09-19 |
CN107181780B (zh) | 2020-07-14 |
US11150946B2 (en) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI761330B (zh) | 通訊通道處理方法和系統 | |
JP5908915B2 (ja) | 伝送制御プロトコルの通信方法およびサーバ | |
JP5767706B2 (ja) | データの送信方法、送信機、受信機、並びにプログラム | |
CN110764963B (zh) | 一种服务异常处理方法、装置及设备 | |
US9652432B2 (en) | Efficient and scalable system and computer program product for handling RX packet on a MR-IOV array of NICS | |
WO2020168996A1 (zh) | 链路聚合端口切换方法、网络设备和计算机存储介质 | |
US20130139178A1 (en) | Cluster management system and method | |
US11218402B2 (en) | Blockchain systems, and message transmission methods and apparatuses | |
CN109495345A (zh) | 一种bfd处理方法及网络设备 | |
CN110120897A (zh) | 链路探测方法、装置、电子设备及机器可读存储介质 | |
EP4094421A2 (en) | Pce controlled network reliability | |
WO2017041577A1 (zh) | 一种管理链路聚合成员端口丢包的方法和装置 | |
CN114025002A (zh) | 一种基于mqtt信息传输的方法、系统及通信设备 | |
US11223559B2 (en) | Determining connectivity between compute nodes in multi-hop paths | |
US20160366571A1 (en) | Connection-Oriented Messaging and Signaling in Mobile Heath Networks | |
WO2016065925A1 (zh) | 控制器替换方法及装置 | |
CN115514719A (zh) | 报文发送方法、装置、交换机及可读存储介质 | |
WO2021092724A1 (zh) | 设备管理的方法和ble设备 | |
JP2012156800A (ja) | サーバ装置およびその通信方法 | |
WO2020047842A1 (zh) | 一种发送链路聚合控制协议报文的方法、系统及装置 | |
US9590893B2 (en) | System and method for management of network links by traffic type | |
CN114979285B (zh) | 服务调用方法、装置、设备、系统、存储介质及产品 | |
JP7456133B2 (ja) | 通信監視装置、通信監視方法及び通信監視プログラム | |
CN115002020B (zh) | 基于ospf的数据处理方法及装置 | |
JP7217647B2 (ja) | 通信装置、通信方法、及びプログラム |