Reutilização de conexão do cliente Go HTTP: equívocos comuns
O cliente Go HTTP foi projetado para reutilizar conexões por padrão, oferecendo utilização eficiente da rede. No entanto, certos cenários podem levar a conceitos errados sobre a reutilização de conexões.
Consulta original: criação de conexão infinita
No código fornecido, inicialmente parece que um número infinito de conexões estão sendo criados. No entanto, esse problema é resolvido fechando o corpo da solicitação após receber a resposta. Isso permite que o transporte reconheça que a conexão pode ser reutilizada para solicitações subsequentes.
Importância do corpo de resposta de fechamento
Para garantir a reutilização da conexão, é crucial ler até que a resposta seja concluída e feche o corpo da resposta. Fechar o corpo sinaliza ao transporte que a conexão pode ser reutilizada.
Considerações Adicionais
Apesar do mecanismo padrão de reutilização de conexão, pode haver cenários em que requisitos específicos imponham limites o número de conexões com um host específico. Infelizmente, o cliente Go HTTP não fornece uma opção de configuração para essa finalidade.
Estratégia alternativa de limitação de taxa
Se as conexões de limitação de taxa forem uma necessidade, uma abordagem alternativa é para limitar a taxa na qual a rotina Go é chamada. Isso pode ser conseguido usando um canal time.Tick, que permite o controle de solicitações por segundo.
Conclusão
O cliente Go HTTP suporta a reutilização de conexão por padrão, mas o manuseio adequado do corpo de resposta é essencial para garantir a utilização eficiente da rede. Nos casos em que a limitação de taxa é necessária, considere usar um mecanismo de limitação separado.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3