如何實現單伺服器300萬個長連線的?

時間 2021-05-29 23:19:28

1樓:

弱網環境要注意半連線佇列的問題,需要查/算清楚系統的半連線佇列最大是多少。一旦半連線佇列滿了,根據系統配置就會拒絕連線或者使用syn-cookies了。

2樓:wingshu

理論上是可以的,這與伺服器cpu記憶體頻寬有關,但應用程式離不開業務邏輯處理,一旦複雜就難以處理幾百萬的量了。本人從事物聯網應用開發,裝置為tcp長連線機制,三分鐘乙個心跳,要求可實時對裝置進行讀寫操作。服務端設計單機容量為10萬。

目前實際接入的併發連線數是4.5萬,一切執行正常。cpu占用10%左右,記憶體2個多g,Windows server 2012系統,iocp技術。

關鍵技術點在於底層網路資料的處理和業務邏輯處理。

3樓:dong

做過相關的調優實戰,使用ucloud上面的虛機,64G記憶體達到了千萬併發連線,這篇文章記錄了詳細步驟

單機千萬併發連線實戰 - 網路高併發程式設計 - 知乎專欄

4樓:stony

這個應該沒吹牛,我昨天在伺服器上壓測單機長連線達到340萬,記憶體消耗30G,檔案控制代碼數改為450萬,再修改一下linux tcp_rmem/tcp_wmem

5樓:zhao william

按理說伺服器端不受埠號限制。ip對決定了多個客戶端ip每個都可以發起65000連線。

但我測試,兩台pc單獨發6w連線。linux伺服器乙個程序只能最多接受65531個連線。

貌似port限制在伺服器端居然也起作用了??網上好多說伺服器端應該不受限制的。但沒看到是不是單程序。要是多程序,多埠那個不算。

單程序能支援併發10w的。沒見過還

6樓:「已登出」

1.這很可能是廣告貼,最開始的標題是:"極光推送是如何實現單伺服器300萬個長連線的?",後來被有知網友給去掉了。

2.所謂的「多訊息迴圈、非同步非阻塞"只是很簡單的東西,很多書上直接有這些東西。就像別的回答一樣,不了解具體業務細節,一味誇大某個引數,是有誤導推銷嫌疑。

3.辯證看待,這家公司可能在開發體驗、使用者體驗以及細節優化方面做的不錯。

7樓:達達

不說清楚具體每秒收發包數量以及包大小就是耍流氓!300萬靜態連線純吃記憶體誰都搞得來,3000連線每秒10000請求和300萬連線每秒100請求你說誰消耗大?同樣每秒100請求,每個請求廣播給10個客戶端和廣播給100客戶端你說哪個消耗大?

關鍵資料不說,還分析啥?

伺服器定時觸發如何實現?比如個推 信鴿的定時推送,飛信的簡訊定時發短息,以及其他的定時觸發等。

有人介紹了利用 Redis 的 Keyspace Notification功能 Pub Sub功能,實現定時任務。就當作學習 Redis,可以試試。Node.js 中使用 Redis 來實現定時任務 飛子 簡單的定時任務就用linux自帶的crontab。有大量的處理任務可以考慮celery rq等...

Android 開發時,如何實現和伺服器的資料同步 ?

nothing 兩種方式 1.輪詢,定乙個時間迴圈向伺服器傳送請求,接收到資料後重新整理介面,這樣伺服器和客戶端做的事情太多,壓力太大,不建議 2.註冊靜態廣播,接受推送下來的訊息,接收到推送後,獲取資料重新整理介面,建議使用這種實現方法 千鋒教育 方法1 定期從伺服器上獲取和上傳,缺點是不實時,不...

部落衝突是如何實現全世界玩家用乙個伺服器的?

高小迪 遊戲性質不一樣,開上百個伺服器的遊戲,是把乙個大的伺服器拆成好幾百個小伺服器,每個小伺服器裡面,讓玩家競爭,消費,最終在進行合服,讓充值多的玩家在消費提公升戰鬥力。要不然在中國,乙個伺服器裡面只有乙個第一名,其他充值玩家,可能就不會玩了。 伺服器是用什麼架構和技術是由門檻和需求的 不同使用者...