第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

轉(zhuǎn) rpc、http 或 websockets,這是將許多小數(shù)據(jù)重復(fù)從一臺服務(wù)器傳輸

轉(zhuǎn) rpc、http 或 websockets,這是將許多小數(shù)據(jù)重復(fù)從一臺服務(wù)器傳輸

Go
慕斯709654 2021-11-08 15:36:32
背景我正在嘗試在 go 中創(chuàng)建內(nèi)存 + cpu 分析器,并希望快速傳輸信息,也許每秒,從正在分析的程序/服務(wù)到服務(wù)器,該服務(wù)器將通過將數(shù)據(jù)保存到數(shù)據(jù)庫來完成所有繁重的工作和/或通過 http 將其提供給網(wǎng)站;這將減少正在分析的程序的負(fù)載,以實現(xiàn)更準(zhǔn)確的測量。這將是傳輸?shù)男K數(shù)據(jù)。我知道已經(jīng)有一些圖書館了,但就像我說的,正在試驗中。傳輸內(nèi)容類型我還沒有決定具體的傳輸類型,但看起來像 HTTP 或 Websockets 的 JSON 和 RPC 的結(jié)構(gòu)(如果我已經(jīng)正確完成了我的研究)概括我可能會嘗試每一個只是為了自己看看,但幾乎沒有使用 RPC 和 Websockets 的經(jīng)驗,并且想要一些關(guān)于可能更快或更適合我正在嘗試做的事情的意見或建議:HTTPRPC網(wǎng)絡(luò)套接字還有什么我沒有考慮的
查看完整描述

1 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗 獲得超6個贊

正如您在評論中提到的,HTTP 不是必需的。

在這種情況下,為了尋找最快的傳輸解決方案,我將完全放棄 HTTP 傳輸層,只使用普通 (TCP) 套接字連接,因為 HTTP 僅傳輸幾個字節(jié)就會產(chǎn)生相當(dāng)大的開銷。

定義您自己的協(xié)議(這可能非常簡單),打開與服務(wù)器的 TCP 連接,并根據(jù)您的要求每隔幾秒左右發(fā)送一次數(shù)據(jù)包。

您發(fā)送(和接收)數(shù)據(jù)的協(xié)議可以很簡單:

  • 進(jìn)行可選的身份驗證或客戶端/服務(wù)器識別(以確保您連接到您想要的服務(wù)器/程序)。

  • 使用encoding/gob標(biāo)準(zhǔn)庫中的packgae 通過連接以二進(jìn)制形式發(fā)送數(shù)據(jù)。

所以基本上分析程序(客戶端)應(yīng)該打開TCP連接,并使用gob.NewEncoder()包裝連接來發(fā)送數(shù)據(jù)。服務(wù)器應(yīng)接受傳入的 TCP 連接并用于gob.NewDecoder()包裝連接以接收數(shù)據(jù)。

客戶端調(diào)用Encoder.Encode()所以發(fā)送分析信息,它通??梢允且粋€結(jié)構(gòu)值。服務(wù)器調(diào)用Decoder.Decode()以接收分析信息,即客戶端發(fā)送的結(jié)構(gòu)。就這樣。

使用encoding/gob包以二進(jìn)制形式發(fā)送數(shù)據(jù)要求您使用相同的類型來描述雙方的分析數(shù)據(jù)。如果您想要更大的靈活性,您還可以使用該encoding/json包將分析信息作為 JSON 文本發(fā)送/接收。缺點是 JSON 需要發(fā)送更多數(shù)據(jù),并且與二進(jìn)制表示相比,生成和解析 JSON 文本需要更多時間。

如果丟失一些分析數(shù)據(jù)包(或接收重復(fù)數(shù)據(jù))不是問題,您可能想要嘗試/實驗使用 UDP 而不是 TCP,這可能會更有效。


查看完整回答
反對 回復(fù) 2021-11-08
  • 1 回答
  • 0 關(guān)注
  • 242 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號