Ten prosty serwer HTTP zawiera wywołanie metody time.Sleep(), która powoduje, że każde żądanie trwa pięć sekund. Kiedy próbuję szybko ładować wiele zakładek w przeglądarce, oczywiste jest, że każde żądanie jest kolejkowane i obsługiwane sekwencyjnie. Jak mogę obsłużyć współbieżne żądania?Dlaczego mój serwer internetowy w golang nie obsługuje jednoczesnych żądań?
package main
import (
"fmt"
"net/http"
"time"
)
func serve(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello, world.")
time.Sleep(5 * time.Second)
}
func main() {
http.HandleFunc("/", serve)
http.ListenAndServe(":1234", nil)
}
Właściwie znalazłem odpowiedź na to pytanie po napisaniu pytania i jest bardzo subtelne. Mimo to publikuję, ponieważ nie mogłem znaleźć odpowiedzi w Google. Czy widzisz, co robię źle?
Jaką otrzymałeś odpowiedź? –
Problem polegał na sposobie, w jaki testowałem. Przeglądarki internetowe ograniczają liczbę połączeń do jednego serwera, nawet między kartami. –
Możesz również użyć jMeter do wysłania żądania do serwera –