Limitaciones del Enrutamiento de Solicitudes
Overview
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 manera efectiva.
How Request Routing Works
Nuestro sistema de enrutamiento utiliza un enfoque de gestión de configuración basado en S3 donde las reglas de ingreso se almacenan como archivos JSON y se indexan automáticamente para búsquedas rápidas. Esto proporciona un enrutamiento confiable pero introduce consideraciones específicas de tiempo y configuración.
Routing Limitations
Configuration Propagation
Cronología: Los cambios en la configuración de ingreso típicamente se propagan dentro de 30-60 segundos, pero en casos raros pueden tardar hasta 2 minutos.
Impacto en los Despliegues:
- Planee este retraso al realizar cambios críticos en el enrutamiento
- Despliegue su servicio antes de actualizar las reglas de ingreso
- Permita tiempo suficiente para que la configuración surta efecto antes de probar
URI Path Constraints
Saneamiento de Caracteres: Las rutas URI se sanitizan automáticamente para compatibilidad con S3:
- Se preservan 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 API para ser compatibles con S3 desde el principio para evitar problemas inesperados de enrutamiento.
Service Discovery
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:
- Las rutas de servicio deben estar registradas antes de poder recibir tráfico
- Los servicios eliminados se eliminan automáticamente del enrutamiento dentro de la ventana de propagación
- Los conflictos de configuración se resuelven basándose en la actualización más reciente
Deployment Considerations
1. Service Deployment Order
Al desplegar nuevos servicios:
- Despliegue su servicio primero y verifique que esté saludable
- Actualice la configuración de ingreso después del despliegue del servicio
- Espere la propagación de la configuración (30-60 segundos)
- Pruebe el nuevo enrutamiento
2. URI Design Best Practices
- Use patrones URI RESTful y predecibles
- Evite caracteres especiales en las rutas
- Mantenga las rutas razonablemente cortas (< 200 caracteres)
- Use convenciones de nombres consistentes
3. Monitoring and Testing
- Monitoree los endpoints de salud de su servicio
- Pruebe los cambios de enrutamiento en entornos de staging
- Permita tiempo suficiente para la propagación de la configuración
- Tenga un plan de reversión listo
Troubleshooting Routing Issues
Service Not Receiving Traffic
- Revise la Salud del Servicio: Asegúrese de que su servicio esté funcionando y respondiendo
- Verifique la Configuración de Ingreso: Confirme que la regla de ingreso esté configurada correctamente
- Revise la Ruta URI: Asegúrese de que la ruta coincida exactamente (sensible a mayúsculas)
- Espere la Propagación: Permita hasta 2 minutos para los cambios de configuración
Configuration Update Failures
- Valide el Formato JSON: Verifique que su configuración sea un JSON válido
- Revise los Límites de Caracteres: Asegúrese de que las rutas no excedan 1024 caracteres
- Revise los Límites de Dominio: Confirme que no haya excedido 100 reglas por dominio
Performance Characteristics
- Decisión de enrutamiento: < 10ms
- Actualización de configuración: 30-60 segundos
- Failover: Failover automático a instancias de servicio saludables