簡體   English   中英

django-channels 可以處理多少個並發連接?

[英]How many concurrent connections can django-channels handle?

我正在將 Django 頻道用於聊天應用程序。 此應用程序可能會在一段時間內擴展到 10 萬個並發用戶。 我想知道 Django Channels 可以處理多少個並發連接。 基本上,我將它與 XMPP 服務器進行比較,XMPP 是可擴展性的更好選擇還是我應該繼續使用 Django 通道?

此外,我正在使用 redis 層作為通道層。 我想知道 Redis 層在某個時間點是否會成為瓶頸?

謝謝

ASGI(異步服務器網關接口)旨在提供具有異步能力的 Python Web 服務器、框架和應用程序之間的標准接口。

在 Django Channels 中,即使 Django 本身處於同步模式,它也可以異步處理連接和套接字。

Websockets 進入名為 Daphne 的服務器(Daphne 是用於 ASGI 和 ASGI-HTTP 的 HTTP、HTTP2 和 WebSocket 協議服務器,開發用於支持 Django Channels)可以處理同時打開的數百個或可能數千個連接。

websocket 上的任何事件(連接、收到消息)都被發送到通道層,這是一種先進先出隊列

Django 工作進程同步從隊列中獲取一條消息,對其進行處理,然后循環返回以獲取另一條消息。

因此,打開的連接數會影響您運行的 Daphne 實例數。 事件的吞吐量會影響您運行的工人數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM