Server-Rotation und Sitzungsmigration
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
- Überwachung der Serverrotation in Sitzungen
- Automatische Sitzungsmigration
- Ermöglichung der Sitzungsmigration in Clients
- Unterbrechung von Diensten und Reaktion auf Benachrichtigungsereignisse zur Serverrotation
- Auslösen der Sitzungsmigration
- FAQs
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 in Sitzungen
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 Ereignis wird an Ihren registrierten Callback-Endpunkt gesendet.
Siehe die Überwachung von Sitzungen Dokumentation.
Wenn Clients mit einer Sitzung verbunden bleiben, wenn eine Reihe von Servern aufgrund der Serverrotation abgeschaltet wird, wird ein sessionDestroyed Ereignis wird auf Ihre Callback-URL gesetzt. Die reason Eigenschaft der sessionDestroyed Ereignis wird gesetzt auf "serverRotation". Und 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 in Clients.
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.
Ermöglichung der Sitzungsmigration in Clients
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.
Setzen Sie die SetSessionMigration Eigenschaft einer Session.Builder Objekt zu true:
session = new Session.Builder(context, applicationId, sessionId){ SetSessionMigration = true }.Build();
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.
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.
Setzen Sie die sessionMigration Eigenschaft eines OTSessionSettings Objekt zu YES:
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.sessionMigration = YES;
Verwenden Sie dieses OTsessionSettings-Objekt, wenn Sie die [OTSession initWithApiKey:applicationId:delegate:settings:] Methode.
Pass true in die setSessionMigration() Methode der Session.Builder Objekt, das Sie zum Erstellen eines Session-Objekts verwenden:
mSession = new Session.Builder(this, applicationId, sessionId)
.setSessionMigration(true)
// other options
.build();
Wenn Sie die OT.initSession() ein Optionsobjekt mit der Option sessionMigration Eigenschaft eingestellt auf true:
const session = OT.initSession(
'12345abc', // your application ID
'1_MX40NzIwMzJ-clg1fn5-', // the session ID
{
sessionMigration: true,
},
);
Setzen Sie die sessionMigration Eigenschaft der options der OTSession-Komponente auf true:
<OTSession
options={{
sessionMigration: true,
// other options
}}
/>
Unterbrechung von Diensten und Reaktion auf Benachrichtigungsereignisse zur Serverrotation
Wenn eine Sitzung nach einer Serverrotation migriert wird, werden viele Dienste fortgesetzt, ohne dass eine Aktion erforderlich ist, wie in der folgenden Tabelle angegeben. Archive, Live-Streaming-Übertragungen und Experience Composer-Instanzen, die für die Sitzung ausgeführt werden, enden jedoch, wenn die Sitzung migriert wird.
| 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. | |
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 für die ursprüngliche Sitzung bereits Archive oder Übertragungen laufen, können Sie neue Archive oder Übertragungen für die neue Sitzung starten. Im Falle von Broadcasts müssen Sie die neue Broadcast-URL an die Clients senden, die den Broadcast konsumieren.
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 sofort trennen und sich erneut mit der neuen Sitzung verbinden. Für einen nahtloseren Übergang zwischen den Sitzungen und zur Minimierung einer möglichen Wiederverbindungszeit können die Clients mit der ursprünglichen Sitzung verbunden bleiben und die Videoanzeige umschalten, bevor die Verbindung zur ursprünglichen Sitzung getrennt wird (bei der Verbindung mit der 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.
FAQs
Was ist die Video API-Serverrotation? Wie häufig werden die Video API-Server aktualisiert? Die Skalierbarkeit der Softwarewolke erfordert eine kontinuierliche Fähigkeit zur Serverrotation. Vonage hält ein 8-Stunden-Fenster ein, um eine übermäßige Rotation von langlebigen Sitzungen zu vermeiden. Rotationen können täglich stattfinden.
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.
Wenn nicht alle Clients Version 2.30.0 oder höher der Client-SDKs verwenden können, können Sie sie eine neue Verbindung zu einer Sitzung herstellen lassen. Es wird empfohlen, eine neue Sitzungs-ID zu verwenden, um sicherzustellen, dass die neue Sitzung an eine neue Serverinstanz geleitet wird. Wenn die Sitzung aufgrund einer Serverrotation unterbrochen wird, werden alle Clients unterbrochen. Wird dieselbe Sitzungs-ID verwendet, wird die erneute Verbindung nach Beendigung der Sitzung auf einen neuen Server verschoben, und zwar nach der sessionDestroyed Ereignis.