Strumento di scrittura per fare un gran numero di richieste http con precisione al secondo

-7

Sto meditando su un progetto in cui un componente deve fare un gran numero di richieste http in tempi precisi. Dovremmo, diciamo, rilasciare un insieme di "dozzine a centinaia" di richieste a intervalli di 1 secondo. È importante che le richieste vengano ricevute dalle altre parti il più vicino possibile all'orario di destinazione.

Nonostante le questioni al di fuori del nostro controllo come le partizioni di rete / prestazioni, mi chiedo quali altri problemi potrei affrontare e le eventuali raccomandazioni per superarli.

La mia competenza è in .Net e JavaScript. Mi chiedo se il primo non sarebbe adatto a causa della sua natura gestita (le raccolte di dati inutili potrebbero causare problemi di temporizzazione). Mi chiedo se JavaScript (Node?) Sarebbe meglio (anche se con un singolo thread, potrebbe "accenderlo e dimenticarlo" abbastanza velocemente). Un altro linguaggio / piattaforma come Erlang sarebbe particolarmente adatto?

Ciò funzionerebbe idealmente su un fornitore di servizi cloud come GCP, Azure o AWS. Potrei avere problemi come i limiti sul numero di richieste HTTP aperte che potrei avere?

Grazie per il tuo aiuto: -)

    
posta Damien Sawyer 23.04.2018 - 06:50
fonte

1 risposta

1

Stai definitivamente andando nella direzione sbagliata.

Supponiamo tu abbia due punti di accesso in HTTP che facciano quanto segue:

  • Assegna l'ora corrente del server
  • Esegui una scrittura nel database

Se testate il primo e gestite con successo le connessioni 100k, ciò non significa che il vostro sito funzionerà in modo affidabile per ogni tipo di richiesta fino a 100k di connessioni.

Penso che tu sia sul lato dello sviluppo, non su sistema / rete. Se vuoi veramente testare qualcosa, dovresti configurare un server con dati di test sufficienti per abbinarlo a quello che potrebbe essere in produzione, quindi per ogni richiesta che puoi fare, puoi definire un ragionevole tempo di risposta (di solito < 500ms o 1s).

Se stai davvero puntando a più di 10k connessioni gestite in parallelo, ti consiglio di ottenere alcuni consigli da specialisti per l'hardware, la rete e il materiale di database. A meno che tu stia solo fornendo un sito HTML completamente statico.

Si noti inoltre che se alcune lingue sono migliori per la cosa quasi in tempo reale, praticamente tutte hanno una certa imprevedibilità (malloc in C) e il computer può anche accendere altre attività di volta in volta. Se vuoi davvero andare allo stress test e non puoi ricevere abbastanza richieste con un solo computer, devi semplicemente configurarne un altro, l'unica cosa che conta è il numero di richieste che il tuo server riceve.

    
risposta data 23.04.2018 - 09:38
fonte

Leggi altre domande sui tag