com.sun.net.httpserver.HttpServer contagem de conexão máximo?
-
10-07-2019 - |
Pergunta
Às vezes (muito raramente) quando eu ligar a uma instância em execução de um com.sun.net.httpserver.HttpServer eu recebo uma "conexão recusada" mensagem de volta.
Alguém sabe por que isso pode ser? Existe um limite de thread para o número de conexões que ele pode manipular? I pode aumentá-lo? Obrigado. -r
Solução
De o doc :
Quando se liga a um endereço e porta número, a aplicação também pode especificar um parâmetro inteiro backlog. Isso representa o número máximo de ligações TCP de entrada que o sistema irá fila internamente. Conexões são enfileiradas enquanto eles estão à espera de ser aceite pelo Httpserver. Quando o limite for atingido, mais ligações podem ser rejeitadas (Ou possivelmente ignorado) pela implementação TCP subjacente. Configuração o valor backlog direita é um compromisso entre eficiente dos recursos uso na camada TCP (não defini-lo demasiado alta) e permitindo adequada rendimento de solicitações de entrada (não definindo-o muito baixo).
Você pode estar vendo isso.
Como alternativa , tem de definir um executor usando setExecutor () . O executor padrão pode ter menos tópicos configurado do que você precisa, e uma adequadamente configurado ThreadPoolExecutor pode funcionar.