本技術(shù)涉及流量控制,具體而言,涉及一種跨網(wǎng)數(shù)據(jù)同步的流量控制方法、系統(tǒng)、介質(zhì)及程序產(chǎn)品。
背景技術(shù):
1、安全數(shù)據(jù)交換系統(tǒng)具有文件同步和數(shù)據(jù)庫(kù)同步等數(shù)據(jù)跨網(wǎng)同步功能,數(shù)據(jù)跨網(wǎng)同步指的是源端服務(wù)器的數(shù)據(jù)經(jīng)過(guò)網(wǎng)閘傳輸至目的端服務(wù)器的過(guò)程。
2、數(shù)據(jù)同步的效率不僅受到網(wǎng)絡(luò)帶寬大小的影響,而更影響同步性能的瓶頸往往在于源端和目的端處理數(shù)據(jù)的業(yè)務(wù)邏輯。例如在數(shù)據(jù)庫(kù)同步過(guò)程中,由于各種不確定因素,源端讀取和發(fā)送數(shù)據(jù)的速率與目的端接收和寫入數(shù)據(jù)的速率通常無(wú)法保持一致,因此無(wú)法最大化源端和目的端的同步性能,并且在源端讀取和發(fā)送數(shù)據(jù)的速率持續(xù)大于目的端接收和寫入數(shù)據(jù)的速率的情況下,還會(huì)導(dǎo)致網(wǎng)絡(luò)中間件由于數(shù)據(jù)堆積而產(chǎn)生內(nèi)存溢出等問(wèn)題。
3、綜上,亟需一種流量控制方案,能夠在避免網(wǎng)絡(luò)中間件內(nèi)存溢出的同時(shí)提高數(shù)據(jù)跨網(wǎng)同步效率。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例的目的在于提供一種跨網(wǎng)數(shù)據(jù)同步的流量控制方法、系統(tǒng)、介質(zhì)及程序產(chǎn)品,能夠在避免網(wǎng)絡(luò)中間件內(nèi)存溢出的同時(shí)提高數(shù)據(jù)跨網(wǎng)同步效率。
2、第一方面,本技術(shù)實(shí)施例提供了一種跨網(wǎng)數(shù)據(jù)同步的流量控制方法,應(yīng)用于第一流控服務(wù)器,包括:
3、通過(guò)采集單元從源端數(shù)據(jù)庫(kù)讀取數(shù)據(jù),并將讀取到的數(shù)據(jù)傳輸至第一緩存隊(duì)列;
4、通過(guò)發(fā)送單元從所述第一緩存隊(duì)列獲取數(shù)據(jù),并將獲取的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)中間件發(fā)送至第二流控服務(wù)器;
5、在響應(yīng)于所述第二流控服務(wù)器發(fā)送的限流信號(hào)并切換至限流狀態(tài)的情況下,基于所述限流信號(hào)控制所述發(fā)送單元的數(shù)據(jù)發(fā)送速率;
6、其中,所述第二流控服務(wù)器包括接收單元和寫入單元,所述接收單元用于接收所述發(fā)送單元發(fā)送的數(shù)據(jù)并傳輸至第二緩存隊(duì)列,以使所述寫入單元從所述第二緩存隊(duì)列獲取數(shù)據(jù)并寫入目的端數(shù)據(jù)庫(kù);所述第二流控服務(wù)器還用于實(shí)時(shí)獲取所述第二緩存隊(duì)列的負(fù)載率,并在所述負(fù)載率不小于預(yù)設(shè)負(fù)載閾值的情況下向所述第一流控服務(wù)器發(fā)送限流信號(hào)。
7、在本技術(shù)實(shí)施例中,通過(guò)在源端和目的端分別設(shè)置流控服務(wù)器,同時(shí)在兩個(gè)流控服務(wù)器中分別設(shè)置緩存隊(duì)列以對(duì)各端數(shù)據(jù)傳輸速率進(jìn)行緩沖控制,并根據(jù)目的端隊(duì)列的負(fù)載情況控制源端發(fā)送數(shù)據(jù)的速率,從而能夠在避免網(wǎng)絡(luò)中間件內(nèi)存溢出的同時(shí)提高數(shù)據(jù)跨網(wǎng)同步效率。
8、在一些可能的實(shí)施例中,所述限流信號(hào)包括所述負(fù)載率以及所述寫入單元的數(shù)據(jù)寫入速率,所述發(fā)送單元的數(shù)據(jù)發(fā)送速率為根據(jù)所述負(fù)載率和所述數(shù)據(jù)寫入速率進(jìn)行計(jì)算得到。
9、在本技術(shù)實(shí)施例中,通過(guò)基于目的端的隊(duì)列負(fù)載率以及寫入數(shù)據(jù)的速率共同計(jì)算并控制源端發(fā)送數(shù)據(jù)的速率,從而能夠進(jìn)一步提高數(shù)據(jù)跨網(wǎng)同步的效率。
10、在一些可能的實(shí)施例中,所述限流信號(hào)包括所述負(fù)載率以及所述寫入單元的數(shù)據(jù)寫入速率;
11、所述在響應(yīng)于所述第二流控服務(wù)器發(fā)送的限流信號(hào)并切換至限流狀態(tài)的情況下,基于所述限流信號(hào)控制所述發(fā)送單元的數(shù)據(jù)發(fā)送速率,包括:
12、在響應(yīng)于所述第二流控服務(wù)器發(fā)送的限流信號(hào)并切換至限流狀態(tài)的情況下,基于所述限流信號(hào)計(jì)算信號(hào)量放入速率,并按照所述信號(hào)量放入速率向信號(hào)量容器放入信號(hào)量;
13、基于所述信號(hào)量容器中的信號(hào)量控制所述發(fā)送單元的數(shù)據(jù)發(fā)送速率。
14、在本技術(shù)實(shí)施例中,通過(guò)利用獨(dú)立運(yùn)行的信號(hào)量控制線程來(lái)控制發(fā)送單元的數(shù)據(jù)發(fā)送速率,從而能夠進(jìn)一步提高對(duì)數(shù)據(jù)跨網(wǎng)同步進(jìn)行流量控制的準(zhǔn)確性和可靠性。
15、在一些可能的實(shí)施例中,所述的跨網(wǎng)數(shù)據(jù)同步的流量控制方法還包括:
16、實(shí)時(shí)獲取所述第一緩存隊(duì)列的負(fù)載率,并基于所述第一緩存隊(duì)列的負(fù)載率控制所述采集單元從源端數(shù)據(jù)庫(kù)讀取數(shù)據(jù)的速率。
17、在本技術(shù)實(shí)施例中,通過(guò)基于源端緩存隊(duì)列的負(fù)載率來(lái)控制采集單元的讀取數(shù)據(jù)速率,從而能夠進(jìn)一步提高對(duì)數(shù)據(jù)跨網(wǎng)同步進(jìn)行流量控制的可靠性。
18、第二方面,本技術(shù)實(shí)施例提供了一種跨網(wǎng)數(shù)據(jù)同步的流量控制方法,應(yīng)用于第二流控服務(wù)器,包括:
19、通過(guò)接收單元接收第一流控服務(wù)器通過(guò)網(wǎng)絡(luò)中間件發(fā)送的數(shù)據(jù),并將接收的數(shù)據(jù)傳輸至第二緩存隊(duì)列;
20、通過(guò)寫入單元從所述第二緩存隊(duì)列獲取數(shù)據(jù)并寫入目的端數(shù)據(jù)庫(kù);
21、在判斷所述第二緩存隊(duì)列的負(fù)載率不小于預(yù)設(shè)負(fù)載閾值的情況下,向所述第一流控服務(wù)器發(fā)送限流信號(hào),以使所述第一流控服務(wù)器基于所述限流信號(hào)控制數(shù)據(jù)發(fā)送速率;
22、其中,所述第一流控服務(wù)器包括采集單元和發(fā)送單元,所述采集單元用于從源端數(shù)據(jù)庫(kù)讀取數(shù)據(jù)并傳輸至第一緩存隊(duì)列,以使所述發(fā)送單元從所述第一緩存隊(duì)列獲取數(shù)據(jù)并通過(guò)所述網(wǎng)絡(luò)中間件發(fā)送至所述第二流控服務(wù)器。
23、第三方面,本技術(shù)實(shí)施例提供了一種跨網(wǎng)數(shù)據(jù)同步的流量控制系統(tǒng),包括第一流控服務(wù)器和第二流控服務(wù)器,所述第一流控服務(wù)器包括采集單元和發(fā)送單元,所述第二流控服務(wù)器包括接收單元和寫入單元;
24、所述第一流控服務(wù)器用于通過(guò)所述采集單元從源端數(shù)據(jù)庫(kù)讀取數(shù)據(jù),并將讀取到的數(shù)據(jù)傳輸至第一緩存隊(duì)列;
25、所述第一流控服務(wù)器還用于通過(guò)所述發(fā)送單元用于從所述第一緩存隊(duì)列獲取數(shù)據(jù),并將獲取的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)中間件發(fā)送至第二流控服務(wù)器;
26、所述第一流控服務(wù)器還用于在響應(yīng)于所述第二流控服務(wù)器發(fā)送的限流信號(hào)并切換至限流狀態(tài)的情況下,基于所述限流信號(hào)控制所述發(fā)送單元的數(shù)據(jù)發(fā)送速率;
27、所述第二流控服務(wù)器用于通過(guò)所述接收單元接收所述第一流控服務(wù)器通過(guò)所述網(wǎng)絡(luò)中間件發(fā)送的數(shù)據(jù),并將接收的數(shù)據(jù)傳輸至第二緩存隊(duì)列;
28、所述第二流控服務(wù)器還用于通過(guò)所述寫入單元從所述第二緩存隊(duì)列獲取數(shù)據(jù)并寫入目的端數(shù)據(jù)庫(kù);
29、所述第二流控服務(wù)器還用于在判斷所述第二緩存隊(duì)列的負(fù)載率不小于預(yù)設(shè)負(fù)載閾值的情況下,向所述第一流控服務(wù)器發(fā)送限流信號(hào),以使所述第一流控服務(wù)器基于所述限流信號(hào)控制所述發(fā)送單元的數(shù)據(jù)發(fā)送速率。
30、第四方面,本技術(shù)實(shí)施例提供了一種跨網(wǎng)數(shù)據(jù)同步的流量控制裝置,應(yīng)用于第一流控服務(wù)器,包括:
31、數(shù)據(jù)采集模塊,用于通過(guò)采集單元從源端數(shù)據(jù)庫(kù)讀取數(shù)據(jù),并將讀取到的數(shù)據(jù)傳輸至第一緩存隊(duì)列;
32、數(shù)據(jù)發(fā)送模塊,用于通過(guò)發(fā)送單元從所述第一緩存隊(duì)列獲取數(shù)據(jù),并將獲取的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)中間件發(fā)送至第二流控服務(wù)器;
33、流量控制模塊,用于在響應(yīng)于所述第二流控服務(wù)器發(fā)送的限流信號(hào)并切換至限流狀態(tài)的情況下,基于所述限流信號(hào)控制所述發(fā)送單元的數(shù)據(jù)發(fā)送速率;
34、其中,所述第二流控服務(wù)器包括接收單元和寫入單元,所述接收單元用于接收所述發(fā)送單元發(fā)送的數(shù)據(jù)并傳輸至第二緩存隊(duì)列,以使所述寫入單元從所述第二緩存隊(duì)列獲取數(shù)據(jù)并寫入目的端數(shù)據(jù)庫(kù);所述第二流控服務(wù)器還用于實(shí)時(shí)獲取所述第二緩存隊(duì)列的負(fù)載率,并在所述負(fù)載率不小于預(yù)設(shè)負(fù)載閾值的情況下向所述第一流控服務(wù)器發(fā)送限流信號(hào)。
35、第五方面,本技術(shù)實(shí)施例提供了一種跨網(wǎng)數(shù)據(jù)同步的流量控制裝置,應(yīng)用于第二流控服務(wù)器,包括:
36、數(shù)據(jù)接收模塊,用于通過(guò)接收單元接收第一流控服務(wù)器通過(guò)網(wǎng)絡(luò)中間件發(fā)送的數(shù)據(jù),并將接收的數(shù)據(jù)傳輸至第二緩存隊(duì)列;
37、數(shù)據(jù)寫入模塊,用于通過(guò)寫入單元從所述第二緩存隊(duì)列獲取數(shù)據(jù)并寫入目的端數(shù)據(jù)庫(kù);
38、限流判斷模塊,用于在判斷所述第二緩存隊(duì)列的負(fù)載率不小于預(yù)設(shè)負(fù)載閾值的情況下,向所述第一流控服務(wù)器發(fā)送限流信號(hào),以使所述第一流控服務(wù)器基于所述限流信號(hào)控制數(shù)據(jù)發(fā)送速率;
39、其中,所述第一流控服務(wù)器包括采集單元和發(fā)送單元,所述采集單元用于從源端數(shù)據(jù)庫(kù)讀取數(shù)據(jù)并傳輸至第一緩存隊(duì)列,以使所述發(fā)送單元從所述第一緩存隊(duì)列獲取數(shù)據(jù)并通過(guò)所述網(wǎng)絡(luò)中間件發(fā)送至所述第二流控服務(wù)器。
40、第六方面,本技術(shù)實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器運(yùn)行時(shí)可實(shí)現(xiàn)第一方面任一實(shí)施例所述的方法。
41、第七方面,本技術(shù)實(shí)施例提供了一種計(jì)算機(jī)程序產(chǎn)品,所述的計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,其中,所述的計(jì)算機(jī)程序被處理器執(zhí)行時(shí)可實(shí)現(xiàn)第一方面任一實(shí)施例所述的方法。