Este documento apresenta práticas recomendadas para usar a Cloud Healthcare API. As diretrizes nesta página foram concebidas para uma maior eficiência, precisão e tempos de resposta ideais do serviço.
Compreender o desempenho da latência
O desempenho da API Cloud Healthcare é medido pela latência entre:
- Quando envia um pedido para a Cloud Healthcare API.
- Quando recebe uma resposta completa ao pedido.
A latência compreende três componentes:
- Tempo de ida e volta (RTT)
- Latência de processamento do servidor
- Débito do servidor
A distância geográfica entre si e o servidor ao qual está a enviar pedidos pode ter um impacto significativo no RTT e no débito do servidor. Pode encontrar a latência entre regiões e o débito medidos para as redes Google Cloud num painel de controlo em direto. O painel de controlo mostra o desempenho que um cliente pode esperar de diferentes localizações quando faz pedidos aos servidores da Cloud Healthcare API.
Medir o desempenho da latência
As seguintes ferramentas e painéis de controlo oferecem formas de medir o desempenho dos pedidos enviados para e recebidos dos servidores da Cloud Healthcare API:
Google Cloud Métricas de latência da consola: pode ver a latência do lado do servidor dos pedidos da API Cloud Healthcare na Google Cloud consola. Para mais informações, consulte as Google Cloud métricas.
Métricas personalizadas do Cloud Logging: pode criar métricas de distribuição com o Logging. As métricas de distribuição permitem-lhe configurar e compreender a latência ponto a ponto nas suas aplicações. Também pode monitorizar e criar relatórios sobre quaisquer medições de latência definidas pelo utilizador.
Painel de rede do Chrome: pode inspecionar a atividade da rede nas Chrome DevTools para ver os detalhes de desempenho de um pedido HTTP enviado a partir de um navegador.
Reduzir a latência dos pedidos
Esta secção descreve vários métodos de redução da latência dos pedidos enviados para a Cloud Healthcare API.
Enviar pedidos para a localização regional mais próxima
Para obter o melhor desempenho de RTT e débito do servidor, envie pedidos do cliente para a localização regional da API Cloud Healthcare mais próxima. Consulte a secção Regiões para ver uma lista das regiões disponíveis.
A enviar pedidos de aquecimento
Quando um cliente envia pedidos a um servidor da Cloud Healthcare API pela primeira vez durante uma sessão, o cliente realiza negociações TCP com o servidor para estabelecer ligações para pedidos HTTP. Todos os pedidos subsequentes podem continuar a usar estas ligações estabelecidas, o que permite ao cliente evitar a sobrecarga de TCP normalmente associada a um pedido. Isto resulta num melhor desempenho ao enviar pedidos.
Enviar pedidos em simultâneo com HTTP/1.1 ou HTTP/2
Para obter o melhor desempenho para uma série de pedidos, envie os pedidos em simultâneo. Siga as seguintes diretrizes quando enviar pedidos simultâneos:
- Ao enviar pedidos simultâneos, tente encontrar um número ideal para o número de pedidos simultâneos. O número ideal depende de vários fatores, incluindo as capacidades de hardware e de rede, e o número de pedidos que estão a ser enviados. Faça testes para encontrar o número ideal.
- Envie pedidos do cliente através de HTTP/2 sempre que possível. O HTTP/2 oferece um melhor desempenho do que o HTTP/1.1 porque o HTTP/2 requer apenas uma ligação TCP quando envia vários pedidos sequencial ou simultaneamente. Como resultado, pode evitar a sobrecarga do handshake TCP.
Se não for possível usar o HTTP/2, use o HTTP/1.1 com uma ligação persistente. Pode evitar a sobrecarga do handshake TCP se já tiverem sido enviados pedidos de preparação. A utilização de uma ligação persistente pode exigir que faça a gestão de uma ligação otimizada com um conjunto de ligações para a sua biblioteca HTTP.
Por exemplo, para definir um conjunto de ligações com 20 pedidos simultâneos através da biblioteca cliente HTTP da Google para Java, o seu código incluiria o seguinte:
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); // Support 20 concurrent requests. cm.setDefaultMaxPerRoute(20); cm.setMaxTotal(100); HTTP_CLIENT = HttpClients.custom().setConnectionManager(cm).build();
Para definir um conjunto de ligações com 20 pedidos simultâneos através do Node.js, o seu código incluiria o seguinte:
require('http').globalAgent.maxSockets = 20