亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

后臺開發小白必學服務器框架——UDPServer

發布時間:2020-10-17 15:36:17 來源:網絡 閱讀:167 作者:mb5dd747fa86df1 欄目:建站服務器

后臺開發小白必學服務器框架——UDPServer
畢業后加入了一家大型的互聯網公司的音視頻產品部門做后臺開發,其實我本身是學習自動化的,研究生的方向嵌入式系統,對互聯網可是一知半解,因此能進入這樣一個大公司還是很幸運的。

剛開始工作的半年應該是在上份工作最快樂的時光,那時候我們十來個人被抽調出來做好友系統,由Z組長負責。從產品到開發,大部分都是新入職員工,pm給畫了一個大餅,大家都滿懷憧憬。閑話少說,先介紹一下剛開始接觸后臺開發用到的服務器框架。

第一個接觸的叫udpserver。顧名思義,就是只支持udp的服務框架。因為我們部門是做音視頻產品的,音視頻數據對實時性要求很高,因此常用udp傳輸數據。Udp server是同步多進程模型,包含1個Interface進程和多個Worker進程。
后臺開發小白必學服務器框架——UDPServer

Iterface進程負責接收來自外部的請求,做一些合法性校驗和格式轉換后,轉發給后端的Worker進程。Worker進程監聽不同的端口收包,并處理業務邏輯。Worker進程的回包直接發給客戶端。

此處有幾個點值得關注:

首先,Worker進程監聽的是不同端口。

監聽相同的端口顯然是更常見的做法,而監聽相同的端口也需要注意一點,即監聽的端口socket必須是從父進程中繼承得到的,而非Worker自己創建的socket。因為對于前者內核才能保證調度的均勻性,而后者是沒有這種效果的,內核只會把請求包扔給同一個Worker。

這里之所以使用監聽不同端口的方案,是為了保證調度的可控性,請求包發往哪個Worker是有預期的,可以做更個性化的調度策略,問題定位也方便得多。Udp server默認是使用輪詢的調度方式。

第二點是,Worker進程回包是直接返回給客戶端的。

另一種常見做法是通過Interface進程回包,缺點是Interface會成為瓶頸。而Worker直接回包的缺點是向外部暴露Worker,不過這個問題并不十分嚴重。相較之下,我們更希望獲得性能的提升。為了給客戶端回包,Interface會把客戶端的ip和端口封裝到請求包發給Worker。

框架雖簡單,但是性能非常優異,作為echosvr性能可達30w+ QPS。但是這個框架不支持TCP,因此只能作為內部的服務框架使用。

因為很久沒用這個框架了,以上所述可能有不準確或者不充分的地方,望不吝賜教。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武义县| 北碚区| 定边县| 天津市| 石阡县| 阿拉善右旗| 罗城| 嵊州市| 潜山县| 易门县| 灵武市| 通辽市| 普兰店市| 梁平县| 汝城县| 观塘区| 长宁县| 博爱县| 绥化市| 新竹县| 铜川市| 临沭县| 文安县| 云安县| 左权县| 延津县| 双柏县| 体育| 句容市| 元阳县| 涿鹿县| 栾川县| 渝北区| 海淀区| 兴和县| 长兴县| 郁南县| 弥勒县| 洪雅县| 饶平县| 绥芬河市|