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:
- Despliegue su servicio primero y verifique que esté sano
- Actualice la configuración de ingress después del despliegue del servicio
- Espere la propagación de la configuración (30-60 segundos)
- 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
- Verifique la salud del servicio: Asegúrese de que su servicio esté en ejecución y respondiendo
- Verifique la configuración de ingress: Confirme que la regla de ingress esté correctamente configurada
- Compruebe la ruta URI: Asegúrese de que la ruta coincida exactamente (sensible a mayúsculas y minúsculas)
- Espere la propagación: Permita hasta 2 minutos para los cambios de configuración
Errores al actualizar la configuración
- Valide el formato JSON: Verifique que su configuración sea JSON válido
- Verifique los límites de caracteres: Asegúrese de que las rutas no excedan los 1024 caracteres
- 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