Rotación de servidores y migración de sesiones
El autoescalado moderno de la nube hace necesario establecer un tiempo mínimo de rotación de los servicios. Las sesiones que duren más de 8 horas podrían desconectarse, ya que pueden residir en servicios que se están escalando hacia fuera o hacia dentro.
Este tema incluye las siguientes secciones:
- Servicios afectados por la rotación de servidores
- Control de la rotación de servidores en las sesiones
- Migración automática de sesiones
- Permitir la migración de sesiones en los clientes
- Interrupciones del servicio y respuesta a las notificaciones de rotación del servidor
- Activación de la migración de sesión
- Preguntas frecuentes
Servicios afectados por la rotación de servidores
Los servicios que siguen funcionando con la rotación de servidores son los siguientes:
- Sesión en directo,
- Llamadas SIP.
Todos los demás servicios se detienen en el momento de la rotación.
Control de la rotación de servidores en las sesiones
Puede registrar una URL de devolución de llamada para que los eventos de sesión se envíen a su URL de devolución de llamada. Cuando se programa la rotación de un grupo de servidores de la Video API para una de sus sesiones, se envía un sessionNotification se envía a su punto final de devolución de llamada registrado.
Véase el Control de la sesión documentación.
Si los clientes permanecen conectados a una sesión cuando el conjunto de servidores se cierra debido a la rotación de servidores, se produce un sessionDestroyed se establece en su URL de devolución de llamada. La dirección reason propiedad del sessionDestroyed se establece en "serverRotation". Y cada cliente conectado se desconecta de la sesión y recibe un sessionDestroyed evento.
Los clientes que utilicen la versión 2.30.0 o posterior de los SDK de cliente de la Video API pueden permanecer conectados automáticamente a una sesión cuando los servidores de la sesión rotan. Consulte la sección siguiente, Migración automática de sesiones.
Para los clientes que utilizan versiones anteriores de los SDK de cliente, hay pasos que puede seguir en respuesta a un sessionNotification para mantener a los clientes conectados. (Véase Respuesta a eventos de notificación de sesión de rotación de servidor.)
Migración automática de sesiones
La función de migración de sesiones transfiere sin problemas a todos los participantes de una sesión a un nuevo servidor durante la rotación de servidores. Esta función garantiza la continuidad de la sesión con una interrupción mínima para los participantes.
La migración de sesiones está disponible en la versión 2.30.0 o posterior de los SDK de cliente. Consulte la siguiente sección, Permitir la migración de sesiones en los clientes.
Las ventajas de habilitar la migración de sesiones incluyen una mayor fiabilidad, tiempos de reconexión reducidos y una experiencia de usuario ininterrumpida durante las transiciones de servidor planificadas. Tenga en cuenta que sólo se migran las sesiones activas. Las grabaciones en curso pueden interrumpirse durante la migración y tendrán que reiniciarse manualmente. Respuesta a eventos de notificación de sesión de rotación de servidor.
Permitir la migración de sesiones en los clientes
Al inicializar una sesión en los SDK de cliente de la Video API, puede establecer una opción para que un cliente permanezca conectado a la sesión durante la rotación del servidor.
Por defecto, la opción de migración de sesión está establecida en false. Asegúrese de ponerlo en true para habilitar la migración de sesión en cada cliente.
Fije el SetSessionMigration propiedad de un Session.Builder objeto a true:
session = new Session.Builder(context, applicationId, sessionId){ SetSessionMigration = true }.Build();
Llame al otc_session_settings_set_session_migration() introduciendo OTC_TRUE como segundo parámetro:
otc_session_settings_set_session_migration(settings, OTC_TRUE);
A continuación, pase el otc_session_settings como la estructura settings en la llamada al parámetro otc_session_new_with_settings() método.
Llame al otc_session_settings_set_session_migration() introduciendo OTC_TRUE como segundo parámetro:
otc_session_settings_set_session_migration(settings, OTC_TRUE);
A continuación, pase el otc_session_settings como la estructura settings en la llamada al parámetro otc_session_new_with_settings() método.
Fije el sessionMigration propiedad de un OTSessionSettings objeto a YES:
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.sessionMigration = YES;
Utilice este objeto OTsessionSettings cuando llame a la función [OTSession initWithApiKey:applicationId:delegate:settings:] método.
Pase true en el setSessionMigration() método del Session.Builder que se utiliza para crear un objeto Session:
mSession = new Session.Builder(this, applicationId, sessionId)
.setSessionMigration(true)
// other options
.build();
Cuando llame al OT.initSession() pasar un objeto de opciones con el parámetro sessionMigration con el valor true:
const session = OT.initSession(
'12345abc', // your application ID
'1_MX40NzIwMzJ-clg1fn5-', // the session ID
{
sessionMigration: true,
},
);
Fije el sessionMigration propiedad del options prop del componente OTSession a true:
<OTSession
options={{
sessionMigration: true,
// other options
}}
/>
Interrupciones del servicio y respuesta a las notificaciones de rotación del servidor
Cuando se migra una sesión después de la rotación del servidor, muchos servicios continúan sin necesidad de realizar ninguna acción, como se indica en la tabla siguiente. Sin embargo, los archivos, las transmisiones de flujo continuo en directo y las instancias de Experience Composer en curso para la sesión finalizan cuando se migra la sesión.
| Service | Continues without interuption |
|---|---|
| Clients connected with the client SDKs | Yes 1 |
| SIP clients | Yes |
| Audio Connector | Yes |
| Archives | Requires restart 2 |
| Live streaming broadcasts | Requires restart |
| Live captions | Requires restart |
| Experience Composer | Requires restart |
| 1 See Enabling session migration in clients. | |
| 2 Automatic archives restart automatically when the session migrates. | |
Puede controlar la rotación de servidores en las sesiones para saber cuándo se produce la rotación de sesión. Tras la migración de la sesión, puede iniciar nuevos archivos, retransmisiones en directo o instancias de Experience Composer para la nueva sesión.
Si hay archivos o emisiones en curso para la sesión original, puede iniciar nuevos archivos o emisiones para la nueva sesión. En el caso de las emisiones, tendrá que enviar la nueva URL de emisión a los clientes que consuman la emisión.
Si los clientes de la sesión no pueden utilizar la versión 2.30.0 o posterior para activar migración de sesionesEn caso contrario, deberá tomar medidas para volver a conectarlos tras la rotación de servidores. Cuando se rotan los servidores de la sesión (una hora después de que se envíe el evento de notificación de sesión), los clientes conectados a la sesión que no tengan activada la migración de sesión se verán obligados a desconectarse de la sesión. Cuando su servidor de aplicaciones recibe una llamada de retorno de notificación de sesión de rotación de servidor, puede tomar medidas para reconectar a estos clientes a una nueva sesión:
Cree una nueva sesión de Video API utilizando la API REST de Video API o un SDK de servidor de Video API.
Envíe el ID de sesión de la nueva sesión a los clientes conectados a la sesión. Puede utilizar la API REST de Video o un SDK de servidor de Video API para enviar la señal a los clientes conectados. Consulte esta documentación.
Los clientes deben desconectarse inmediatamente de la sesión inicial y volver a conectarse a la nueva sesión. Para una transición más fluida entre sesiones y para minimizar cualquier posible tiempo de reconexión, los clientes pueden permanecer conectados a la sesión inicial y cambiar la pantalla de vídeo antes de desconectarse de la sesión inicial (al conectarse a la nueva sesión).
Activación de la migración de sesión
Puede iniciar manualmente el proceso de migración de sesión utilizando la función migración de sesiones API REST. Este enfoque le proporciona una mayor flexibilidad y control sobre las migraciones de sesión, permitiéndole minimizar las interrupciones durante las operaciones de mantenimiento o escalado del backend. Al activar la migración en el momento que mejor se adapte a sus necesidades operativas, podrá garantizar mejor la continuidad de los servicios que puedan verse afectados durante el proceso de migración de sesiones. Para obtener más información sobre los servicios que pueden sufrir interrupciones, consulte la sección interrupciones del servicio sección.
Sólo puede migrar la sesión si no hay ninguna migración en curso para esa sesión y si la sesión no se ha creado o migrado recientemente.
Preguntas frecuentes
¿Qué es la rotación de servidores de Video API? ¿Con qué frecuencia se actualizan los servidores de Video API? La escalabilidad de la nube de software requiere una capacidad continua de rotación de servidores. Vonage mantiene una ventana de 8 horas para evitar la rotación excesiva de sesiones de larga duración. Las rotaciones pueden producirse a diario.
Hay varias razones principales para rotar un servidor multimedia. Los motivos principales son el mantenimiento, las actualizaciones de software, los parches de seguridad, el mantenimiento de la infraestructura y el autoescalado elástico:
- Mantenimiento, seguridad y nuevas actualizaciones de software: los servicios se mejoran con regularidad. Puede tratarse de actualizaciones de software, menos frecuentes, parches de seguridad o actualizaciones de infraestructura.
- Mantenimiento en la nube de sistemas con problemas - Entre las alertas de la infraestructura, la detección de posibles anomalías o los procedimientos de la infraestructura para refrescar los sistemas en la nube, los sistemas pueden ponerse automáticamente fuera de servicio, respetando los límites de 8 horas, para garantizar que no haya problemas prolongados.
- Autoescalado elástico: los sistemas también suben y bajan con regularidad para gestionar las cargas dentro de las regiones y manejar las capacidades de "seguir al sol". Así, a largo plazo, los servidores poco cargados pueden escalarse para consolidar la infraestructura.
¿Puedo utilizar el mismo identificador de sesión para volver a conectarme cuando una sesión se desconecta debido a la rotación del servidor?
Los clientes que utilicen la versión 2.30.0 o posterior de los SDK de cliente de la Video API pueden permanecer conectados automáticamente a una sesión durante la rotación del servidor. Consulte Migración automática de sesiones.
Si todos los clientes no pueden utilizar la versión 2.30.0 o posterior de los SDK de cliente, puede hacer que vuelvan a conectarse a una sesión. Se recomienda utilizar un nuevo ID de sesión para garantizar que la nueva sesión se dirige a una nueva instancia del servidor. Si la sesión se desconecta debido a la rotación del servidor, todos los clientes se desconectarán. Si se utiliza el mismo identificador de sesión, la reconexión se trasladará a un nuevo servidor una vez finalizada la sesión, siguiendo el método evento sessionDestroyed.