Limitaciones del enrutamiento de solicitudes

Visión general

Este documento explica cómo funciona nuestro sistema de enrutamiento de solicitudes y las limitaciones que pueden afectar sus despliegues. Comprender estas restricciones le ayuda a diseñar sus aplicaciones de forma eficaz.

Cómo funciona el enrutamiento de solicitudes

Nuestro sistema de enrutamiento utiliza un enfoque de gestión de configuración basado en S3 donde las reglas de ingress se almacenan como archivos JSON y se indexan automáticamente para búsquedas rápidas. Esto proporciona un enrutamiento fiable pero introduce consideraciones específicas de temporización y configuración.

Limitaciones del enrutamiento

Propagación de la configuración

Cronograma: Los cambios en la configuración de ingress normalmente se propagan en 30-60 segundos, pero en casos raros pueden tardar hasta 2 minutos.

Impacto en los despliegues:

  • Planifique este retraso al realizar cambios críticos de enrutamiento
  • Despliegue su servicio antes de actualizar las reglas de ingress
  • Permita tiempo suficiente para que la configuración surta efecto antes de realizar pruebas

Restricciones de la ruta URI

Saneamiento de caracteres: Las rutas URI se sanean automáticamente para compatibilidad con S3:

  • Se conservan los caracteres alfanuméricos, guiones, guiones bajos y puntos
  • Los caracteres especiales se convierten en guiones bajos
  • Longitud máxima de la ruta: 1024 caracteres

Ejemplos:

  • /api/v1/users_api_v1_users
  • /api/v1/users?filter=active_api_v1_users_filter_active
  • /api/v1/users@domain_api_v1_users_domain

Recomendación: Diseñe sus rutas de API para que sean compatibles con S3 desde el inicio y evitar problemas inesperados de enrutamiento.

Descubrimiento de servicios

Búsqueda basada en índices: Nuestro sistema utiliza archivos de índice para mapear URIs a servicios, lo que proporciona:

  • Decisiones de enrutamiento rápidas (< 10ms)
  • Seguimiento de versiones para reversión
  • Limpieza automática de configuraciones inválidas

Implicaciones:

  • Los endpoints de servicio deben registrarse antes de poder recibir tráfico
  • Los servicios eliminados se retiran automáticamente del enrutamiento dentro de la ventana de propagación
  • Los conflictos de configuración se resuelven según la actualización más reciente

Consideraciones de despliegue

1. Orden de despliegue del servicio

Al desplegar nuevos servicios:

  1. Despliegue su servicio primero y verifique que esté sano
  2. Actualice la configuración de ingress después del despliegue del servicio
  3. Espere la propagación de la configuración (30-60 segundos)
  4. Pruebe el nuevo enrutamiento

2. Mejores prácticas de diseño de URI

  • Use patrones de URI RESTful y predecibles
  • Evite caracteres especiales en las rutas
  • Mantenga las rutas razonablemente cortas (< 200 caracteres)
  • Use convenciones de nombres coherentes

3. Supervisión y pruebas

  • Supervise los endpoints de estado de su servicio
  • Pruebe los cambios de enrutamiento en entornos de staging
  • Permita tiempo suficiente para la propagación de la configuración
  • Tenga listo un plan de reversión

Solución de problemas de enrutamiento

El servicio no recibe tráfico

  1. Verifique la salud del servicio: Asegúrese de que su servicio esté en ejecución y respondiendo
  2. Verifique la configuración de ingress: Confirme que la regla de ingress esté correctamente configurada
  3. Compruebe la ruta URI: Asegúrese de que la ruta coincida exactamente (sensible a mayúsculas y minúsculas)
  4. Espere la propagación: Permita hasta 2 minutos para los cambios de configuración

Errores al actualizar la configuración

  1. Valide el formato JSON: Verifique que su configuración sea JSON válido
  2. Verifique los límites de caracteres: Asegúrese de que las rutas no excedan los 1024 caracteres
  3. Revise los límites del dominio: Confirme que no haya excedido las 100 reglas por dominio

Características de rendimiento

  • Decisión de enrutamiento: < 10ms
  • Actualización de configuración: 30-60 segundos
  • Conmutación por error: Conmutación automática a instancias de servicio saludables