/ / Connessioni simultanee su ruolo di Azure Worker: azzurro, tcp, connessione, ruoli-azzurro-lavoratore

Connessioni simultanee su ruolo di Azure Worker: azzurro, tcp, connessione, ruoli-azzurro-lavoratore

Vorrei sapere che non è consentita la connessione simultanea per un ruolo di lavoratore azzurro in ascolto sulla porta 21, con un'istanza.

Lo scenario è:

Ho una istanza di ruolo di lavoro e porta apertasu 21 e Tcplistener in ascolto sulla porta 21 per le connessioni in entrata. L'ho implementato async in modo da poter ascoltare altre richieste client durante l'elaborazione di una.

Sulla parte azzurra vorrei sapere se esiste una limitazione su no della richiesta simultanea sulla porta 21 del ruolo di lavoratore.

Saluti, Vivek

risposte:

2 per risposta № 1

Penso che prima dovrai capire il networkingi principi. C'è solo un processo in grado di ascoltare una particolare porta e protocollo su un'interfaccia di rete alla volta. Come viene gestita la comunicazione? In un contorno molto semplice la situazione appare come segue (i numeri di porta e gli indirizzi IP sono intenzionalmente falsi):

  1. C'è un listener sulla porta 21 sull'indirizzo IP 902.168.13.24 (e nessun altro processo può ascoltare quella porta, quindi nessun listener simultaneo)
  2. Una richiesta di connessione proviene da qualche altro host a quell'indirizzo IP e quella porta.
  3. Ora la porta 21 è occupata e nessuno può più connettersi ad essa (vengono accodate più connessioni in entrata)
  4. Dopo una stretta di mano a livello di protocollo, se la connessione ha esito positivo, il primo viene spostato su un'altra socket (arbitraria), ad esempio la porta 43251
  5. La porta 21 viene liberata per accettare altre connessioni.
  6. La prossima connessione in coda è accettata.

Tutto ciò avviene a livello di protocollo molto basso e lo sviluppatore (a meno che non sviluppi il driver della scheda di rete) non vede / cura questo spostamento della porta.

Ora la vera domanda è, come accettare di piùconnessioni simultanee. Se si sta sviluppando il proprio server TCP, si imposta il numero massimo di connessioni consentite e si gestiscono da soli (gestendo i thread). Se si utilizza qualche altro server di terze parti, deve disporre di un'opzione configurabile per il numero massimo di connessioni simultanee consentite.

È possibile verificare una semplice implementazione di TCP Server Qui. Come puoi vedere, c'è un campo privato _maxConnections, che viene utilizzato per gestire le connessioni.

In sintesi: il numero massimo di concorrentila connessione a una risorsa specifica (socket) dipende dal server che serve quella risorsa. Ad esempio, il limite massimo di connessioni simultanee predefinite per IIS8 è impostato su 4294967295:

Connessioni simultanee di IIS Max


1 per risposta № 2

Il limite è 500K per VM o istanza di ruolo: https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits#networking-limits-1