Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Optimizar en función de la latencia de la red

En este documento, se enumeran las prácticas recomendadas para usar la API de Cloud Healthcare. Las pautas que se indican en esta página están diseñadas para lograr un mayor tiempo de respuesta, precisión y tiempos de respuesta óptimos del servicio.

Comprende el rendimiento de latencia

El rendimiento de la API de Cloud Healthcare se mide en función de la latencia entre los siguientes factores:

  1. Cuando envías una solicitud a la API de Cloud Healthcare.
  2. Cuando recibes una respuesta completa a la solicitud.

La latencia consta de tres componentes:

  • Tiempo de ida y vuelta (RTT)
  • Latencia de procesamiento del servidor
  • Capacidad de procesamiento del servidor

La distancia geográfica entre tú y el servidor que estás realizando puede tener un impacto significativo en la capacidad de procesamiento del RTT y en el servidor. La latencia entre regiones y la capacidad de procesamiento medida para las redes de Google Cloud se pueden encontrar en un panel activo. En el panel, se muestra el rendimiento que un cliente puede esperar desde diferentes ubicaciones cuando realiza solicitudes a los servidores de la API de Cloud Healthcare.

Mide el rendimiento de latencia

Las siguientes herramientas y paneles proporcionan formas de medir el rendimiento de las solicitudes desde y hacia los servidores de la API de Cloud Healthcare:

  • Métricas de latencia de Google Cloud Console: Puedes ver la latencia del servidor de las solicitudes a la API de Cloud Healthcare en Google Cloud Console. Para obtener más información, consulta las métricas de Google Cloud.

  • Métricas personalizadas de Cloud Logging: puedes crear métricas de distribución con Logging. Las métricas de distribución te permiten configurar y comprender la latencia de extremo a extremo en tus aplicaciones. También puedes informar sobre cualquier medición de latencia personalizada personalizada.

  • Panel de red de Chrome: Puedes inspeccionar la actividad de red en Chrome DevTools para ver los detalles de rendimiento de una solicitud HTTP enviada desde un navegador.

Reduce la latencia de las solicitudes

En esta sección, se describen varios métodos para reducir la latencia de las solicitudes enviadas a la API de Cloud Healthcare.

Envía solicitudes a la ubicación regional más cercana

Para obtener el mejor rendimiento de RTT y de la capacidad de procesamiento del servidor, envía solicitudes del cliente a la ubicación regional de la API de Cloud Healthcare más cercana. Consulta Regiones para ver una lista de regiones disponibles.

Comprime el cuerpo de la respuesta

Si un cliente tiene un ancho de banda limitado, una manera simple de reducir el ancho de banda necesario para cada solicitud es habilitar la compresión gzip. gzip es una forma de compresión de datos: reduce el tamaño de un archivo de forma típica. Esto permite que el archivo se pueda transferir más rápido y se pueda almacenar con menos uso de espacio que si no estuviera comprimido. Comprimir un archivo puede reducir costos y el tiempo de transferencia.

Aunque habilitar la compresión gzip requiere tiempo adicional de CPU para extraer los resultados, la ventaja de ahorrar ancho de banda suele usar ventajas de compresión gzip. Sin embargo, si el ancho de banda limitado no es una preocupación, los beneficios de la compresión gzip no competirán.

Para recibir una respuesta codificada en gzip, debes configurar un encabezado Accept-Encoding en tu solicitud.

En la siguiente muestra, se muestra un encabezado HTTP formado correctamente para habilitar la compresión gzip:

Accept-Encoding: gzip

Envía solicitudes de preparación

Cuando un cliente envía solicitudes a un servidor de la API de Cloud Healthcare por primera vez durante una sesión, el cliente realiza protocolos de enlace TCP con el servidor para establecer conexiones con las solicitudes HTTP. Cualquier solicitud posterior puede seguir usando estas conexiones establecidas, lo que permite al cliente evitar la sobrecarga de TCP asociada generalmente con una solicitud. Esto genera un mejor rendimiento cuando se envían solicitudes.

Envía solicitudes simultáneamente con HTTP/1.1 o HTTP/2

Para obtener el mejor rendimiento para una serie de solicitudes, envía las solicitudes simultáneamente. Usa las siguientes pautas cuando envíes solicitudes simultáneas:

  • Cuando envíes solicitudes simultáneas, intenta encontrar un número ideal para la cantidad de solicitudes simultáneas. El número ideal depende de varios factores, incluidas las capacidades de hardware y red y la cantidad de solicitudes que se envían. Realiza pruebas para encontrar el número ideal.
  • Envía solicitudes desde el cliente con HTTP/2 siempre que sea posible. HTTP/2 proporciona un mejor rendimiento que HTTP/1.1 porque HTTP/2 solo requiere una conexión TCP cuando envía varias solicitudes de forma secuencial o simultánea. Como resultado, puedes evitar la sobrecarga de protocolo de enlace TCP.
  • Si no es posible usar HTTP/2, usa HTTP/1.1 con una conexión persistente. Puedes evitar la sobrecarga de protocolo de enlace TCP si ya se enviaron solicitudes de preparación. Usar una conexión persistente puede requerir que administres una conexión optimizada con un grupo de conexiones para tu biblioteca HTTP.

    Por ejemplo, para configurar un grupo de conexiones con 20 solicitudes simultáneas mediante la biblioteca cliente HTTP de Google para Java, tu código incluirá lo siguiente:

    PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
    // Support 20 concurrent requests.
    cm.setDefaultMaxPerRoute(20);
    cm.setMaxTotal(100);
    HTTP_CLIENT = HttpClients.custom().setConnectionManager(cm).build();
    

    Para configurar un grupo de conexiones con 20 solicitudes simultáneas mediante Node.js, tu código incluirá lo siguiente:

    require('http').globalAgent.maxSockets = 20