Server-Rotation und Sitzungsmigration
Bewährte Verfahren für den Umgang mit Serverwechseln bei der Video API und für die automatische Wiederherstellung der Verbindung durch Clients, wenn solche Wechsel auftreten.
Die moderne automatische Skalierung der Cloud macht es erforderlich, eine Mindestrotationszeit für Dienste festzulegen. Sitzungen, die länger als 8 Stunden dauern, können unterbrochen werden, da sie sich in Diensten befinden, die aus- oder einskaliert werden.
Dieses Thema umfasst die folgenden Abschnitte:
Von der Serverrotation betroffene Dienste
Die folgenden Dienste werden im Rahmen der Serverrotation weiter betrieben:
- Live-Sitzung
- SIP-Anrufe
Alle anderen Dienste werden bei der Rotation gestoppt.
Überwachung der Serverrotation
Sie können eine Callback-URL für Sitzungsereignisse registrieren, die an Ihre Callback-URL gesendet werden. Wenn eine Gruppe von Video API-Servern für eine Ihrer Sitzungen für eine Rotation vorgesehen ist, wird eine sessionNotification Das Ereignis wird an Ihren registrierten Callback-Endpunkt gesendet.
Siehe die Überwachung von Sitzungen Dokumentation.
Wenn Clients mit einer Sitzung verbunden bleiben, während eine Gruppe von Servern aufgrund einer Serverrotation heruntergefahren wird, dann sessionDestroyed Das Ereignis wird an Ihre Callback-URL gesendet. Das reason Eigenschaft der sessionDestroyed Ereignis wird gesetzt auf "serverRotation". Jeder verbundene Client wird von der Sitzung getrennt und erhält eine sessionDestroyed Veranstaltung.
Clients, die Version 2.30.0 oder höher der Video API-Client-SDKs verwenden, können automatisch mit einer Sitzung verbunden bleiben, wenn die Server für die Sitzung rotieren. Siehe den nächsten Abschnitt, Automatische Sitzungsmigration.
Für Clients, die ältere Versionen der Client-SDKs verwenden, gibt es Schritte, die Sie als Reaktion auf eine sessionNotification Ereignis, um die Verbindung zu den Clients aufrechtzuerhalten. (Siehe Reagieren auf Server-Rotationssitzungs-Benachrichtigungsereignisse.)
Automatische Sitzungsmigration
Mit der Sitzungsmigrationsfunktion werden alle Teilnehmer einer Sitzung während der Serverrotation nahtlos auf einen neuen Server übertragen. Diese Funktion gewährleistet die Kontinuität der Sitzung bei minimaler Unterbrechung für die Teilnehmer.
Die Sitzungsmigration ist ab der Version 2.30.0 der Client-SDKs verfügbar. Siehe den nächsten Abschnitt, Ermöglichung der Sitzungsmigration.
Zu den Vorteilen der Sitzungsmigration gehören verbesserte Zuverlässigkeit, kürzere Wiederverbindungszeiten und unterbrechungsfreie Benutzererfahrung bei geplanten Serverwechseln. Beachten Sie, dass nur Live-Sitzungen migriert werden. Laufende Aufzeichnungen können während der Migration unterbrochen werden und müssen manuell neu gestartet werden - siehe Reagieren auf Server-Rotationssitzungs-Benachrichtigungsereignisse.
Detaillierte Anweisungen zur Einrichtung sowie Codebeispiele (einschließlich SIP, Audio Connector, Video Connector und Migrate Session API) finden Sie in der Sitzungsmigration: Einrichtung und Konfiguration Leitfaden.
Ermöglichung der Sitzungsmigration
Wenn Sie eine Sitzung in den Video API-Client-SDKs initialisieren, können Sie eine Option festlegen, damit ein Client während der Serverrotation mit der Sitzung verbunden bleibt.
Standardmäßig ist die Option Sitzungsmigration auf false. Stellen Sie ihn unbedingt auf true um die Sitzungsmigration in jedem Client zu ermöglichen.
Web-Client SDK (OpenTok.js)
Wenn Sie anrufen OT.initSession(), übergeben Sie ein Optionsobjekt mit dem sessionMigration Eigenschaft eingestellt auf true:
const session = OT.initSession(
'12345', // your application ID
'1_MX40NzIwMzJ-clg1fn5-', // the session ID
{
sessionMigration: true,
},
);
Android-Client-SDK
Pass true in die setSessionMigration() Methode der Session.Builder Objekt, das Sie zum Erstellen eines Session-Objekts verwenden:
mSession = new Session.Builder(this, apiKey, sessionId)
.setSessionMigration(true)
// other options
.build();
iOS-Client SDK
Setzen Sie die sessionMigration Eigenschaft eines OTSessionSettings Objekt zu YES:
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.sessionMigration = YES;
Verwenden Sie dies OTSessionSettings Objekt beim Aufruf der [OTSession initWithApiKey:sessionId:delegate:settings:] Methode.
Windows-Client-SDK
Setzen Sie die SetSessionMigration Eigenschaft einer Session.Builder Objekt zu true:
session = new Session.Builder(context, apiKey, sessionId){ SetSessionMigration = true }.Build();
Client-SDKs für Linux und macOS
Rufen Sie die otc_session_settings_set_session_migration() Methode, Übergabe in OTC_TRUE als zweiten Parameter:
otc_session_settings_set_session_migration(settings, OTC_TRUE);
Dann übergeben Sie die otc_session_settings Struktur als settings Parameter im Aufruf der otc_session_new_with_settings() Methode.
React Native-Client SDK
Setzen Sie die sessionMigration Eigenschaft der options der OTSession-Komponente auf true:
<OTSession
options={{
sessionMigration: true,
// other options
}}
/>
Umgang mit Dienstunterbrechungen und Rotationsereignissen
Wenn eine Sitzung nach einer Serverrotation migriert wird, laufen viele Dienste ohne weiteres Zutun weiter, wie aus der folgenden Tabelle hervorgeht. Archive, Live-Streaming-Übertragungen und laufende Experience Composer-Instanzen für die Sitzung werden jedoch beendet, sobald die Sitzung migriert wird.
| Service | Wird ohne Unterbrechung fortgesetzt |
|---|---|
| Clients, die über die Client-SDKs verbunden sind | Ja 1 |
| SIP-Clients | Ja |
| Audio-Anschluss | Ja |
| Archiv | Erfordert einen Neustart 2 |
| Live-Streaming-Übertragungen | Neustart erforderlich |
| Live-Beschriftungen | Neustart erforderlich |
| Erlebnis-Komponist | Neustart erforderlich |
| 1 Siehe Ermöglichung der Sitzungsmigration in Clients. | |
| 2 Automatische Archive bei der Migration der Sitzung automatisch neu starten. |
Sie können Überwachung der Serverrotation in Sitzungen um zu wissen, wann eine Sitzungsrotation stattfindet. Nach der Sitzungsmigration können Sie neue Archive, Live-Streaming-Übertragungen oder Experience Composer-Instanzen für die neue Sitzung starten.
Wenn die Clients in der Sitzung nicht Version 2.30.0 oder höher verwenden können, um die Sitzungsmigrationmüssen Sie Maßnahmen ergreifen, um sie nach der Serverrotation wieder zu verbinden. Wenn die Server für die Sitzung rotiert werden (eine Stunde nach dem Senden des Sitzungsbenachrichtigungsereignisses), werden die mit der Sitzung verbundenen Clients, bei denen die Sitzungsmigration nicht aktiviert ist, gezwungen, die Verbindung zur Sitzung zu trennen. Wenn Ihr Anwendungsserver einen Callback zur Benachrichtigung über die Serverrotation erhält, kann er Maßnahmen ergreifen, um diese Clients wieder mit einer neuen Sitzung zu verbinden:
-
Erstellen Sie eine neue Video API-Sitzung mit der Video API REST API oder einem Video API Server SDK.
-
Senden Sie die Sitzungs-ID für die neue Sitzung an die mit der Sitzung verbundenen Clients. Sie können die Video REST API oder ein Video API Server SDK verwenden, um das Signal an die verbundenen Clients zu senden. Siehe . diese Dokumentation.
-
Die Clients sollten die Verbindung zur ursprünglichen Sitzung unverzüglich trennen und sich erneut mit der neuen Sitzung verbinden.
Um einen nahtloseren Übergang zwischen den Sitzungen zu gewährleisten und mögliche Wartezeiten beim erneuten Verbindungsaufbau zu minimieren, können die Teilnehmer mit der ursprünglichen Sitzung verbunden bleiben und die Videoanzeige umschalten, bevor sie die Verbindung zur ursprünglichen Sitzung trennen (beim Herstellen der Verbindung zur neuen Sitzung).
Auslösen der Sitzungsmigration
Sie können den Sitzungsmigrationsprozess manuell mit dem Befehl Sitzungsmigration REST-API. Dieser Ansatz bietet Ihnen mehr Flexibilität und Kontrolle über Sitzungsmigrationen und ermöglicht es Ihnen, Unterbrechungen bei Backend-Wartungen oder Skalierungsvorgängen zu minimieren. Indem Sie die Migration zu einem Zeitpunkt auslösen, der Ihren betrieblichen Anforderungen am besten entspricht, können Sie die Kontinuität von Diensten, die während der Sitzungsmigration betroffen sein könnten, besser gewährleisten. Weitere Informationen darüber, welche Dienste von Unterbrechungen betroffen sein können, finden Sie in der Serviceunterbrechungen Abschnitt.
Sie können die Sitzung nur dann migrieren, wenn derzeit keine Migration für diese Sitzung im Gange ist und die Sitzung nicht vor kurzem erstellt oder migriert wurde.
Häufig gestellte Fragen
Was ist die Video API-Serverrotation? Wie häufig werden die Video API-Server aktualisiert?
Die Skalierbarkeit von Cloud-Software setzt die kontinuierliche Möglichkeit voraus, Server auszutauschen. Vonage hält ein Zeitfenster von 8 Stunden ein, um einen übermäßigen Austausch von lang andauernden Sitzungen zu vermeiden. Der Austausch kann täglich erfolgen.
Es gibt einige Hauptgründe für die Rotation eines Medienservers. Die Hauptgründe sind Wartung, Software-Updates, Sicherheitspatches, Wartung der Infrastruktur und elastische Autoskalierung:
-
Wartung, Sicherheit und neue Software-Updates - Die Dienste werden regelmäßig verbessert. Dabei kann es sich um Software-Updates handeln, die weniger häufig durchgeführt werden, um Sicherheits-Patches oder um Infrastruktur-Updates.
-
Cloud-Wartung gestörter Systeme - Zwischen Infrastrukturwarnungen, der Erkennung möglicher Anomalien oder Infrastrukturverfahren zur Auffrischung von Cloud-Systemen können Systeme unter Einhaltung der 8-Stunden-Grenzen automatisch außer Betrieb genommen werden, um sicherzustellen, dass keine anhaltenden Probleme auftreten.
-
Elastische automatische Skalierung - Die Systeme werden regelmäßig hoch- und heruntergefahren, um die Lasten innerhalb der Regionen zu bewältigen und die Kapazitäten nach dem Prinzip "Follow the Sun" zu nutzen. Langfristig können so gering belastete Server zur Konsolidierung der Infrastruktur skaliert werden.
Kann ich dieselbe Sitzungs-ID verwenden, um die Verbindung wiederherzustellen, wenn eine Sitzung aufgrund einer Serverrotation unterbrochen wurde?
Clients, die Version 2.30.0 oder höher der Video API-Client-SDKs verwenden, können während der Serverrotation automatisch mit einer Sitzung verbunden bleiben. Siehe Automatische Sitzungsmigration.
Falls nicht alle Clients die Version 2.30.0 oder höher der Client-SDKs verwenden können, können Sie sie dazu veranlassen, sich erneut mit einer Sitzung zu verbinden. Es wird empfohlen, eine neue Sitzungs-ID zu verwenden, um sicherzustellen, dass die neue Sitzung an eine neue Serverinstanz weitergeleitet wird. Wenn die Sitzung aufgrund einer Serverrotation getrennt wird, werden alle Clients getrennt. Wird dieselbe Sitzungs-ID verwendet, wird die erneute Verbindung nach Beendigung der Sitzung auf einen neuen Server umgeleitet, gemäß der sessionDestroyed Ereignis.