[發(fā)明專利]一種數(shù)據(jù)發(fā)送方法、裝置和可讀介質(zhì)有效
| 申請?zhí)枺?/td> | 201810194815.6 | 申請日: | 2018-03-09 |
| 公開(公告)號: | CN110247942B | 公開(公告)日: | 2021-09-07 |
| 發(fā)明(設(shè)計)人: | 汪勝蕾 | 申請(專利權(quán))人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04L12/875;H04L12/863 |
| 代理公司: | 北京同達信恒知識產(chǎn)權(quán)代理有限公司 11291 | 代理人: | 郭潤湘 |
| 地址: | 518044 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù) 發(fā)送 方法 裝置 可讀 介質(zhì) | ||
本發(fā)明公開了一種數(shù)據(jù)發(fā)送方法、裝置和可讀介質(zhì),涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,本發(fā)明公開的方法和裝置中,數(shù)據(jù)源在獲取到待發(fā)送數(shù)據(jù)包后,將待發(fā)送數(shù)據(jù)包的版本號放入版本號緩存隊列的隊尾,當確定出版本號緩存隊列中并包發(fā)送窗口中版本號的數(shù)量達到拼包閾值時,將相應(yīng)數(shù)量的待發(fā)送數(shù)據(jù)包合并成一個拼包數(shù)據(jù)包發(fā)送給訂閱者,與逐個向訂閱者發(fā)送待發(fā)送數(shù)據(jù)包相比,訂閱者一次就可以從接收隊列中讀取多個數(shù)據(jù)包,從而減少了讀取數(shù)據(jù)包的時間和節(jié)省了讀取數(shù)據(jù)包所占用的資源,使得訂閱者有較多的資源處理數(shù)據(jù)包和提供業(yè)務(wù)服務(wù),從而加快了數(shù)據(jù)包的處理速度,進而也就降低了同步數(shù)據(jù)時產(chǎn)生的延時,尤其適用于訂閱者所處進程負載較高的場景。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)發(fā)送方法、裝置和可讀介質(zhì)。
背景技術(shù)
為了提升承載的玩家數(shù)量,網(wǎng)絡(luò)游戲服務(wù)器通常會按功能拆分為多個服務(wù)進程。不同的進程負責(zé)不同的玩法功能以及數(shù)據(jù)存儲。不同玩法模塊之間又緊密關(guān)聯(lián),一個進程的玩法往往會依賴其他玩法進程中的數(shù)據(jù)。而大部分網(wǎng)絡(luò)游戲非常強調(diào)玩家交互的實時性,玩家請求的處理時延必須要小于感官上的反應(yīng)時間,否則會導(dǎo)致游戲體驗的卡頓。這就要求玩法的計算邏輯和依賴的數(shù)據(jù)在同一個進程中,避免跨進程數(shù)據(jù)查詢增加額外的請求處理延遲。所以,需要把一個進程的數(shù)據(jù)同步到依賴該數(shù)據(jù)的其他進程中。每個進程會維護其依賴數(shù)據(jù)的數(shù)據(jù)緩存,在查詢數(shù)據(jù)的時候只需要查詢本進程中的數(shù)據(jù)緩存。
現(xiàn)有的數(shù)據(jù)同步方法為:結(jié)合圖1所示,負責(zé)玩法模塊的進程的數(shù)據(jù)源在收到數(shù)據(jù)修改時,采用廣播的方式將修改的數(shù)據(jù)發(fā)送給訂閱者,訂閱者為依賴該玩法模塊產(chǎn)生的數(shù)據(jù)的其它進程。訂閱者只有在接收并處理數(shù)據(jù)之后才會向數(shù)據(jù)源發(fā)送確認,然而由于不同的訂閱者承載不同的玩法,而有些玩法CPU開銷比較大時,會導(dǎo)致提供這些玩法的訂閱者處于高負載狀態(tài),進而導(dǎo)致接收并處理數(shù)據(jù)源發(fā)送的同步數(shù)據(jù)的速度變慢,從而造成較多的數(shù)據(jù)堆積在訂閱者的接收隊列中,造成數(shù)據(jù)同步延時增加的情況。
因此,如何降低進程間同步數(shù)據(jù)時產(chǎn)生的延時成為現(xiàn)有技術(shù)中亟待解決的問題之一。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種數(shù)據(jù)發(fā)送方法、裝置和可讀介質(zhì),用以減少現(xiàn)有技術(shù)中進程間同步數(shù)據(jù)時的延時。
第一方面,本發(fā)明實施例提供一種數(shù)據(jù)發(fā)送方法,包括:
數(shù)據(jù)源獲取待發(fā)送數(shù)據(jù)包;并
根據(jù)先入先出的順序,將獲取的待發(fā)送數(shù)據(jù)的版本號放入版本號緩存隊列的隊尾;
當確定出所述版本號緩存隊列中落入并包發(fā)送窗口中的版本號的數(shù)量達到拼包閾值時,將相應(yīng)數(shù)量的待發(fā)送數(shù)據(jù)包合并為一個拼包數(shù)據(jù)包發(fā)送給訂閱者,所述拼包數(shù)據(jù)包的包頭中攜帶有數(shù)量信息,以使訂閱者根據(jù)所述數(shù)量信息,將所述拼包數(shù)據(jù)包拆分成相應(yīng)數(shù)量的數(shù)據(jù)包;并將拆分后的數(shù)據(jù)包寫入到訂閱者所在進程的數(shù)據(jù)緩存中。
這樣,與逐個向訂閱者發(fā)送待發(fā)送數(shù)據(jù)包相比,訂閱者一次就可以從接收隊列中讀取多個數(shù)據(jù)包,從而減少了讀取數(shù)據(jù)包的時間和節(jié)省了讀取數(shù)據(jù)包所占用的資源,使得訂閱者有較多的資源來處理數(shù)據(jù)包和提供業(yè)務(wù)服務(wù),從而加快了數(shù)據(jù)包的處理速度,進而也就降低了同步數(shù)據(jù)時產(chǎn)生的延時,尤其在訂閱者所處進程負載較高時,采用本發(fā)明提供的方法,可以防止訂閱者長時間處于慢消費狀態(tài),此外,通過引入版本號緩存隊列,根據(jù)版本號緩存隊列中落入到并包發(fā)送窗口中版本號的數(shù)量確定是否達到拼包閾值,只有當達到拼包閾值時才發(fā)送拼包數(shù)據(jù)包,這樣可以讓訂閱者有較多時間處理已發(fā)送但未確收的數(shù)據(jù)包,加快訂閱者處理數(shù)據(jù)包的速度。。
較佳地,所述版本號緩存隊列中預(yù)發(fā)送窗口中落入已發(fā)送但未被訂閱者確收的數(shù)據(jù)包的版本號;所述方法,還包括:
每次接收到訂閱者的數(shù)據(jù)包確收指示時,同步滑動所述預(yù)發(fā)送窗口和并包發(fā)送窗口,使得被確收的數(shù)據(jù)包的版本號移出所述預(yù)發(fā)送窗口;并
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于騰訊科技(深圳)有限公司,未經(jīng)騰訊科技(深圳)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810194815.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 發(fā)送方法、發(fā)送系統(tǒng)和發(fā)送器
- 發(fā)送系統(tǒng)、發(fā)送設(shè)備
- 發(fā)送設(shè)備、發(fā)送/接收設(shè)備、發(fā)送方法和發(fā)送/接收方法
- 發(fā)送裝置、發(fā)送方法
- 發(fā)送裝置、發(fā)送方法
- 發(fā)送系統(tǒng)、發(fā)送裝置以及數(shù)據(jù)發(fā)送方法
- 發(fā)送方法、發(fā)送裝置
- 發(fā)送裝置、發(fā)送方法以及記錄介質(zhì)
- 發(fā)送方法、發(fā)送裝置
- 發(fā)送系統(tǒng)、發(fā)送方法及發(fā)送/接收系統(tǒng)





