Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Richten Sie einen serverlosen Mobilfunkrouter für eine zellenbasierte Architektur ein
Erstellt von Mian Tariq (AWS) und Ioannis Lioupras () AWS
Quellcode-Repository | Umgebung: PoC oder Pilot | Technologien: Serverlos; Bereitstellung von Inhalten; Infrastruktur |
Arbeitslast: Open Source | AWSDienste: Amazon API Gateway; AWSCLI; Amazon Cognito AWS CloudFormation; Amazon DynamoDB; AWS Lambda; Amazon S3; Amazon; Step Functions SQS AWS |
Übersicht
Als Einstiegspunkt in das System einer globalen zellbasierten Anwendung ist der Mobilfunkrouter dafür verantwortlich, Benutzer effizient den entsprechenden Zellen zuzuweisen und den Benutzern die Endpunkte zur Verfügung zu stellen. Der Mobilfunkrouter übernimmt Funktionen wie das Speichern von user-to-cell Zuordnungen, die Überwachung der Zellkapazität und das Anfordern neuer Zellen bei Bedarf. Es ist wichtig, die Funktionalität des Mobilfunkrouters bei möglichen Störungen aufrechtzuerhalten.
Das Design-Framework für Mobilfunkrouter in diesem Muster konzentriert sich auf Stabilität, Skalierbarkeit und allgemeine Leistungsoptimierung. Das Muster verwendet statisches Routing, bei dem Clients Endpunkte bei der ersten Anmeldung zwischenspeichern und direkt mit Zellen kommunizieren. Diese Entkopplung erhöht die Ausfallsicherheit des Systems, indem sie dazu beiträgt, die unterbrechungsfreie Funktionalität der zellbasierten Anwendung bei einem Ausfall des Mobilfunkrouters sicherzustellen.
Dieses Muster verwendet eine AWS CloudFormation Vorlage für die Bereitstellung der Architektur. Einzelheiten dazu, was die Vorlage bereitstellt, oder dazu, wie dieselbe Konfiguration mithilfe von bereitgestellt wird AWS Management Console, finden Sie im Abschnitt Zusätzliche Informationen.
Wichtig: Die Demonstration, der Code und die AWS CloudFormation Vorlage in diesem Muster dienen nur zur Erläuterung. Das bereitgestellte Material dient ausschließlich der Veranschaulichung des Entwurfsmusters und der Verständlichkeit. Die Demo und der Code sind nicht produktionsbereit und sollten nicht für Live-Produktionsaktivitäten verwendet werden. Von jedem Versuch, den Code oder die Demo in einer Produktionsumgebung zu verwenden, wird dringend abgeraten und erfolgt auf eigenes Risiko. Wir empfehlen, sich mit geeigneten Fachleuten in Verbindung zu setzen und gründliche Tests durchzuführen, bevor Sie dieses Muster oder eine seiner Komponenten in einer Produktionsumgebung implementieren.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives Amazon Web Services (AWS) -Konto
Die neueste Version von AWS Command Line Interface (AWS CLI)
AWSAnmeldeinformationen mit den erforderlichen Berechtigungen zum Erstellen des AWS CloudFormation Stacks, der AWS Lambda Funktionen und der zugehörigen Ressourcen
Produktversionen
Python 3.12
Architektur
Das folgende Diagramm zeigt ein allgemeines Design des Mobilfunkrouters.
Das Diagramm durchläuft den folgenden Arbeitsablauf:
Der Benutzer kontaktiert Amazon API Gateway, das als Front für die API Mobilfunk-Router-Endpunkte dient.
Amazon Cognito kümmert sich um die Authentifizierung und Autorisierung.
Der AWS Step Functions Workflow besteht aus den folgenden Komponenten:
Orchestrator ‒ Wird
Orchestrator
verwendet AWS Step Functions , um einen Workflow oder eine Zustandsmaschine zu erstellen. Der Workflow wird vom Mobilfunkrouter API ausgelöst. DerOrchestrator
führt Lambda-Funktionen basierend auf dem Ressourcenpfad aus.Dispatcher ‒ Die
Dispatcher
Lambda-Funktion identifiziert und weist jedem registrierten neuen Benutzer eine statische Zelle zu. Die Funktion sucht nach der Zelle mit der geringsten Anzahl von Benutzern, weist sie dem Benutzer zu und gibt die Endpunkte zurück.Mapper ‒ Der
Mapper
Vorgang verarbeitet die user-to-cell Zuordnungen innerhalb derRoutingDB
Amazon DynamoDB DynamoDB-Datenbank, die mit der Vorlage erstellt wurde. AWS CloudFormation Wenn dieMapper
Funktion ausgelöst wird, stellt sie den bereits zugewiesenen Benutzern ihre Endpunkte zur Verfügung.Scaler ‒ Die
Scaler
Funktion verfolgt die Zellbelegung und die verfügbare Kapazität. Bei Bedarf kann dieScaler
Funktion über Amazon Simple Queue Service (AmazonSQS) eine Anfrage an die Ebene „Bereitstellung und Bereitstellung“ senden, um neue Zellen anzufordern.Validator ‒ Die
Validator
Funktion validiert die Zellenendpunkte und erkennt mögliche Probleme.
Die
RoutingDB
speichert Zellinformationen und Attribute (APIEndpunkte, Status AWS-Region, Metriken).Wenn die verfügbare Kapazität von Zellen einen Schwellenwert überschreitet, fordert der Mobilfunkrouter Bereitstellungs- und Bereitstellungsdienste über Amazon SQS an, um neue Zellen zu erstellen.
Wenn neue Zellen erstellt werden, RoutingDB
wird es aus der Bereitstellungs- und Bereitstellungsebene aktualisiert. Dieser Prozess würde jedoch den Rahmen dieses Musters sprengen. Einen Überblick über die Voraussetzungen für den Entwurf zellenbasierter Architekturen und Einzelheiten zum in diesem Muster verwendeten Mobilfunkrouter-Design finden Sie im Abschnitt Zusätzliche Informationen.
Tools
AWS-Services
Amazon API Gateway unterstützt Sie bei der Erstellung, Veröffentlichung, Wartung, Überwachung und Sicherung REST — HTTP und das WebSocket APIs in jeder Größenordnung.
AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und zu verwalten AWS-Regionen.
Amazon Cognito bietet Authentifizierung, Autorisierung und Benutzerverwaltung für Web- und mobile Apps.
Amazon DynamoDB ist ein vollständig verwalteter Service ohne SQL Datenbank, der eine schnelle, vorhersehbare und skalierbare Leistung bietet.
AWS Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
Amazon Simple Queue Service (AmazonSQS) bietet eine sichere, dauerhafte und verfügbare gehostete Warteschlange, mit der Sie verteilte Softwaresysteme und -komponenten integrieren und entkoppeln können.
AWS Step Functionsist ein serverloser Orchestrierungsservice, mit dem Sie Lambda-Funktionen und andere Funktionen kombinieren können, um geschäftskritische Anwendungen AWS-Services zu erstellen.
Andere Tools
Python
ist eine Allzweck-Computerprogrammiersprache.
Code-Repository
Der Code für dieses Muster ist im GitHub Serverless-Cell-Router-Repository
Bewährte Methoden
Bewährte Methoden für den Aufbau zellenbasierter Architekturen finden Sie in der folgenden AWS Well-Architected-Anleitung:
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Klonen Sie das Beispielcode-Repository. | Verwenden Sie den folgenden Befehl, um das Serverless-Cell-Router GitHub Repository auf Ihren Computer zu klonen:
| Developer |
Richten Sie AWS CLI temporäre Anmeldeinformationen ein. | Konfigurieren Sie die AWS CLI mit Anmeldeinformationen für Ihre AWS-Konto. In dieser exemplarischen Vorgehensweise werden temporäre Anmeldeinformationen verwendet, die über die AWS IAM Identity Center-Befehlszeile oder die programmatische Zugriffsoption bereitgestellt werden. Dadurch werden den | Developer |
Erstellen Sie einen S3-Bucket. | Erstellen Sie einen S3-Bucket, der zum Speichern und Zugreifen auf die Serverless-Cell-Router Lambda-Funktionen für die Bereitstellung durch die AWS CloudFormation Vorlage verwendet wird. Verwenden Sie den folgenden Befehl, um den S3-Bucket zu erstellen:
| Developer |
Erstellen Sie ZIP-Dateien. | Erstellen Sie eine ZIP-Datei für jede Lambda-Funktion, die sich im Verzeichnis Functions
| Developer |
Kopieren Sie die ZIP-Dateien in den S3-Bucket. | Verwenden Sie die folgenden Befehle, um alle ZIP-Dateien der Lambda-Funktion in den S3-Bucket zu kopieren:
| Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Stellen Sie die AWS CloudFormation Vorlage bereit. | Führen Sie den folgenden AWS CLI Befehl aus, um die AWS CloudFormation Vorlage bereitzustellen:
| Developer |
Überprüfen Sie den Fortschritt. | Melden Sie sich bei der an AWS Management Console, öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation/und überprüfen Sie den Fortschritt der Stack-Entwicklung. Wenn der Status lautet | Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Weisen Sie dem Benutzer Zellen zu. | Um das zu initiieren
Der Die Antwort der
| Developer |
Ruft Benutzerzellen ab. | Führen Sie
Das
| Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Bereinigen Sie die Ressourcen. | Gehen Sie wie folgt vor, um zusätzliche Gebühren auf Ihrem Konto zu vermeiden:
| App-Developer |
Zugehörige Ressourcen
Referenzen
Video
Physalia: Zellenbasierte Architektur für höhere Verfügbarkeit bei Amazon EBS
Zusätzliche Informationen
Prämissen für den Entwurf zellbasierter Architektur
Dieses Muster konzentriert sich zwar auf den Mobilfunkrouter, es ist jedoch wichtig, die gesamte Umgebung zu verstehen. Die Umgebung ist in drei separate Schichten gegliedert:
Die Routing-Schicht oder dünne Schicht, die den Mobilfunkrouter enthält
Die Zellschicht, bestehend aus verschiedenen Zellen
Die Bereitstellungs- und Bereitstellungsebene, die Zellen bereitstellt und die Anwendung bereitstellt
Jede Schicht behält ihre Funktionalität auch bei Beeinträchtigungen anderer Schichten bei. AWS-Konten dienen als Grenze zur Fehlerisolierung.
Das folgende Diagramm zeigt die Schichten auf einer hohen Ebene. Die Zellschicht und die Bereitstellungs- und Bereitstellungsschicht fallen nicht in den Geltungsbereich dieses Musters.
Weitere Informationen zur zellenbasierten Architektur finden Sie unter Reduzierung des Wirkungsbereichs durch zellenbasierte Architektur: Zellenrouting.
Entwurfsmuster für Mobilfunkrouter
Der Mobilfunkrouter ist eine von allen Zellen gemeinsam genutzte Komponente. Um mögliche Auswirkungen zu minimieren, ist es wichtig, dass die Routing-Ebene ein vereinfachtes und horizontal skalierbares Design verwendet, das so dünn wie möglich ist. Die Routing-Schicht dient als Einstiegspunkt des Systems und besteht nur aus den Komponenten, die für die effiziente Zuweisung von Benutzern zu den entsprechenden Zellen erforderlich sind. Komponenten innerhalb dieser Ebene sind nicht an der Verwaltung oder Erstellung von Zellen beteiligt.
Dieses Muster verwendet statisches Routing, was bedeutet, dass der Client die Endpunkte bei der ersten Anmeldung zwischenspeichert und anschließend eine direkte Kommunikation mit der Zelle herstellt. Regelmäßige Interaktionen zwischen dem Client und dem Mobilfunkrouter werden initiiert, um den aktuellen Status zu bestätigen oder Aktualisierungen abzurufen. Diese gezielte Entkopplung ermöglicht bestehenden Benutzern einen unterbrechungsfreien Betrieb bei einem Ausfall des Mobilfunkrouters und sorgt für kontinuierliche Funktionalität und Stabilität innerhalb des Systems.
In diesem Muster unterstützt der Mobilfunkrouter die folgenden Funktionen:
Abrufen von Zellendaten aus der Zellendatenbank in der Bereitstellungs- und Bereitstellungsschicht und Speichern oder Aktualisieren der lokalen Datenbank.
Zuweisen einer Zelle zu jedem neuen registrierten Benutzer der Anwendung mithilfe des Zellenzuweisungsalgorithmus.
Speichern der user-to-cells Zuordnung in der lokalen Datenbank.
Überprüfung der Kapazität der Zellen während der Benutzerzuweisung und Auslösen eines Ereignisses für den Automaten in der Bereitstellungs- und Bereitstellungsebene, um Zellen zu erstellen.
Verwendung des Algorithmus für Kriterien zur Zellenerstellung, um diese Funktionalität bereitzustellen.
Beantwortung der neu registrierten Benutzeranfragen durch Bereitstellung URLs der statischen Zellen. Diese URLs werden auf dem Client mit einer Gültigkeitsdauer (TTL) zwischengespeichert.
Beantwortung vorhandener Benutzeranfragen eines ungültigen Benutzers URL durch Bereitstellung einer neuen oder aktualisiertenURL.
Sehen Sie sich die folgenden Komponenten und Schritte an, um mehr über den Demonstrations-Cellrouter zu erfahren, der anhand der AWS CloudFormation Vorlage eingerichtet wurde:
Richten Sie den Amazon Cognito Cognito-Benutzerpool ein und konfigurieren Sie ihn.
Richten Sie das API Gateway API für den Mobilfunkrouter ein und konfigurieren Sie es.
Erstellen Sie eine DynamoDB-Tabelle.
Erstellen und konfigurieren Sie eine SQS Warteschlange.
Implementieren Sie die
Orchestrator
.Implementieren Sie die Lambda-Funktionen:
Dispatcher
,Scaler
,Mapper
,Validator
.Beurteilt und verifiziert.
Voraussetzung ist, dass die Bereitstellungs- und Bereitstellungsschicht bereits eingerichtet ist. Ihre Implementierungsdetails würden den Rahmen dieses Artefakts sprengen.
Da diese Komponenten anhand einer AWS CloudFormation Vorlage eingerichtet und konfiguriert werden, werden die folgenden Schritte anschaulich und allgemein dargestellt. Es wird davon ausgegangen, dass Sie über die erforderlichen AWS Fähigkeiten verfügen, um die Einrichtung und Konfiguration abzuschließen.
1. Einrichtung und Konfiguration des Amazon Cognito Cognito-Benutzerpools
Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon Cognito Cognito-Konsole unter https://console.aws.amazon.com/cognito/. Richten Sie einen Amazon Cognito Cognito-Benutzerpool mit dem NamenCellRouterPool
, mit App-Integration, gehosteter Benutzeroberfläche und den erforderlichen Berechtigungen ein und konfigurieren Sie ihn.
2. Richten Sie das API Gateway API für den Mobilfunkrouter ein und konfigurieren Sie es
Öffnen Sie die API Gateway-Konsole unter https://console.aws.amazon.com/apigateway/. Richten Sie mithilfe eines Amazon Cognito-AutorisierersCellRouter
, der in den Amazon Cognito-Benutzerpool integriert ist, einen API benannten Autorisierer ein und konfigurieren Sie ihn. CellRouterPool
Implementieren Sie die folgenden Elemente:
CellRouter
APIRessourcen, einschließlichPOST
MethodenIntegration mit dem in Schritt 5 implementierten Step Functions-Workflow
Autorisierung durch den Amazon Cognito Cognito-Autorisierer
Zuordnungen von Integrationsanfragen und Antworten
Zuweisung der erforderlichen Berechtigungen
3. Erstellen Sie eine DynamoDB-Tabelle
Öffnen Sie die DynamoDB-Konsole unter und erstellen Sie eine Standard-DynamoDB-Tabelle https://console.aws.amazon.com/dynamodb/, die tbl_router
mit der folgenden Konfiguration aufgerufen wird:
Partitionsschlüssel ‒
marketId
Schlüssel sortieren ‒
cellId
Kapazitätsmodus ‒ Bereitgestellt
Point-in-time recovery (PITR) ‒ Aus
Erstellen Sie auf der Registerkarte Indizes einen globalen sekundären Index mit dem NamenmarketId-currentCapacity-index
. Die Scaler
Lambda-Funktion verwendet den Index, um effizient nach der Zelle mit der niedrigsten Anzahl zugewiesener Benutzer zu suchen.
Erstellen Sie die Tabellenstruktur mit den folgenden Attributen:
marketId
‒ EuropacellId
‒ cell-0002currentCapacity
‒ 2endPoint_1
‒ <your endpoint for the first Region>endPoint_2
‒ <your endpoint for the second Region>IsHealthy
‒ StimmtmaxCapacity
‒ 10regionCode_1
‒eu-north-1
regionCode_2
‒eu-central-1
userIds
‒ <your email address>
4 Eine SQS Warteschlange erstellen und konfigurieren
Öffnen Sie die SQS Amazon-Konsole unter https://console.aws.amazon.com/sqs/und erstellen Sie eine SQS Standardwarteschlange namens CellProvisioning
Configured with Amazon SQS Key Encryption.
5. Implementieren Sie den Orchestrator
Entwickeln Sie einen Step Functions Functions-Workflow, der als Orchestrator
Grundlage für den Router dient. Der Workflow ist über den Mobilfunkrouter API aufrufbar. Der Workflow führt die angegebenen Lambda-Funktionen basierend auf dem Ressourcenpfad aus. Integrieren Sie die Step-Funktion in das API Gateway API für den Mobilfunkrouter CellRouter
und konfigurieren Sie die erforderlichen Berechtigungen zum Aufrufen der Lambda-Funktionen.
Das folgende Diagramm zeigt den Arbeitsablauf. Der Auswahlstatus ruft eine der Lambda-Funktionen auf. Wenn die Lambda-Funktion erfolgreich ist, endet der Workflow. Wenn die Lambda-Funktion fehlschlägt, wird fail state aufgerufen.
6. Implementieren Sie die Lambda-Funktionen
Implementieren Sie die Validator
Funktionen Dispatcher
Mapper
Scaler
,, und. Wenn Sie jede Funktion in der Demonstration einrichten und konfigurieren, definieren Sie eine Rolle für die Funktion und weisen Sie die erforderlichen Berechtigungen für die Ausführung der erforderlichen Operationen in der DynamoDB-Tabelle zu. tbl_router
Integrieren Sie zusätzlich jede Funktion in den Workflow. Orchestrator
Dispatcher-Funktion
Die Dispatcher
Funktion ist dafür verantwortlich, jedem neuen registrierten Benutzer eine einzelne statische Zelle zu identifizieren und zuzuweisen. Wenn sich ein neuer Benutzer bei der globalen Anwendung registriert, wird die Anfrage an die Dispatcher
Funktion weitergeleitet. Die Funktion verarbeitet die Anfrage anhand vordefinierter Bewertungskriterien wie den folgenden:
Region ‒ Wählen Sie die Zelle auf dem Markt aus, in der sich der Benutzer befindet. Wenn der Benutzer beispielsweise von Europa aus auf die globale Anwendung zugreift, wählen Sie eine Zelle aus, die AWS-Regionen in Europa verwendet wird.
Nähe oder Latenz ‒ Wählen Sie die Zelle aus, die dem Benutzer am nächsten ist. Wenn der Benutzer beispielsweise von Holland aus auf die Anwendung zugreift, berücksichtigt die Funktion eine Zelle, die Frankfurt und Irland verwendet. Die Entscheidung, welche Zelle sich am nächsten befindet, basiert auf Kennzahlen wie der Latenz zwischen dem Standort des Benutzers und den Zellenregionen. Bei diesem Beispielmuster werden die Informationen statisch aus der Bereitstellungs- und Bereitstellungsebene eingespeist.
Health ‒ Die
Dispatcher
Funktion überprüft anhand des angegebenen Zellstatus (Gesund = wahr oder falsch), ob die ausgewählte Zelle gesund ist.Kapazität ‒ Die Benutzerverteilung basiert auf der geringsten Anzahl von Benutzern in einer Zellenlogik, sodass der Benutzer der Zelle mit der geringsten Benutzeranzahl zugewiesen wird.
Hinweis: Diese Kriterien dienen nur zur Erläuterung dieses Beispielmusters. Für eine Implementierung eines Mobilfunkrouters in der Praxis können Sie verfeinerte und anwendungsfallorientierte Kriterien definieren.
Orchestrator
Ruft die Dispatcher-Funktion auf, um Zellen Benutzer zuzuweisen. In dieser Demofunktion ist der Marktwert ein statischer Parameter, der als definiert ist. europe
Die Dispatcher
Funktion bewertet, ob dem Benutzer bereits eine Zelle zugewiesen ist. Wenn die Zelle bereits zugewiesen ist, gibt die Dispatcher
Funktion die Endpunkte der Zelle zurück. Wenn dem Benutzer keine Zelle zugewiesen ist, sucht die Funktion nach der Zelle mit der geringsten Anzahl von Benutzern, weist sie dem Benutzer zu und gibt die Endpunkte zurück. Die Effizienz der Zellensuchanfrage wird durch die Verwendung des globalen sekundären Indexes optimiert.
Mapper-Funktion
Die Mapper
Funktion überwacht die Speicherung und Wartung von user-to-cell Zuordnungen in der Datenbank. Jedem registrierten Benutzer wird eine einzelne Zelle zugewiesen. Jede Zelle hat zwei unterschiedliche Zellen URLs — eine für jede AWS Region. Diese dienen als auf API Gateway gehostete API Endpunkte und URLs fungieren als eingehende Punkte für die globale Anwendung.
Wenn die Mapper
Funktion eine Anfrage von der Client-Anwendung empfängt, führt sie eine Abfrage in der DynamoDB-Tabelle aus, tbl_router
um die user-to-cell Zuordnung abzurufen, die der angegebenen E-Mail-ID zugeordnet ist. Wenn sie eine zugewiesene Zelle findet, stellt die Mapper
Funktion umgehend die beiden Zellen der Zelle bereit. URLs Die Mapper
Funktion überwacht außerdem aktiv Änderungen an der Zelle URLs und veranlasst Benachrichtigungen oder Aktualisierungen der Benutzereinstellungen.
Scaler-Funktion
Die Scaler
Funktion verwaltet die Restkapazität der Zelle. Bei jeder neuen Benutzerregistrierungsanfrage bewertet die Scaler
Funktion die verfügbare Kapazität der Zelle, der die Dispatcher
Funktion dem Benutzer zugewiesen hat. Wenn die Zelle ihr vorgegebenes Limit gemäß den angegebenen Bewertungskriterien erreicht hat, initiiert die Funktion eine Anfrage über eine SQS Amazon-Warteschlange an die Bereitstellungs- und Bereitstellungsebene und fordert die Bereitstellung und Bereitstellung neuer Zellen an. Die Skalierung von Zellen kann auf der Grundlage einer Reihe von Bewertungskriterien wie den folgenden durchgeführt werden:
Maximale Benutzeranzahl ‒ Jede Zelle kann eine maximale Anzahl von 500 Benutzern haben.
Pufferkapazität ‒ Die Pufferkapazität jeder Zelle beträgt 20 Prozent, was bedeutet, dass jeder Zelle jederzeit 400 Benutzern zugewiesen werden kann. Die verbleibenden 20 Prozent der Pufferkapazität sind für future Anwendungsfälle und die Behandlung unerwarteter Szenarien reserviert (z. B. wenn die Dienste zur Zellenerstellung und -bereitstellung nicht verfügbar sind).
Zellenerstellung ‒ Sobald eine bestehende Zelle 70 Prozent der Kapazität erreicht, wird eine Anforderung zur Erstellung einer zusätzlichen Zelle ausgelöst.
Hinweis: Diese Kriterien dienen nur zur Erläuterung dieses Beispielmusters. Für eine Implementierung eines Mobilfunkrouters in der Praxis können Sie verfeinerte und anwendungsfallorientierte Kriterien definieren.
Der Scaler
Demonstrationscode wird ausgeführt, Orchestrator
nachdem der dem neu registrierten Benutzer Dispatcher
erfolgreich eine Zelle zugewiesen hat. Nach Erhalt der Zellen-ID von bewertet der anhand vordefinierter BewertungskriterienDispatcher
, ob die angegebene Zelle über ausreichend Kapazität für weitere Benutzer verfügt. Scaler
Wenn die Kapazität der Zelle nicht ausreicht, sendet die Scaler
Funktion eine Nachricht an den SQS Amazon-Service. Diese Nachricht wird vom Service innerhalb der Bereitstellungs- und Bereitstellungsebene abgerufen, wodurch die Bereitstellung einer neuen Zelle eingeleitet wird.
Validator-Funktion
Die Validator
Funktion identifiziert und behebt Probleme im Zusammenhang mit dem Zellzugriff. Wenn sich ein Benutzer bei der globalen Anwendung anmeldet, ruft die Anwendung die Zellen URLs aus den Benutzerprofileinstellungen ab und leitet Benutzeranfragen an eine der beiden zugewiesenen Regionen innerhalb der Zelle weiter. Wenn auf sie nicht zugegriffen URLs werden kann, kann die Anwendung eine URL Überprüfungsanfrage an den Mobilfunkrouter senden. Der Mobilfunkrouter ruft die Orchestrator
auf. Validator
Das Validator
initiiert den Validierungsprozess. Die Validierung kann neben anderen Prüfungen Folgendes umfassen:
Querverweise auf die URLs in der Datenbank URLs gespeicherte Zelle in der Anfrage, um mögliche Aktualisierungen zu identifizieren und zu verarbeiten
Durchführung einer gründlichen Zustandsprüfung (z. B. eine
HTTP GET
Anfrage an den Endpunkt der Zelle)
Zusammenfassend liefert die Validator
Funktion Antworten auf Anfragen von Kundenanwendungen und gibt den Validierungsstatus sowie alle erforderlichen Korrekturmaßnahmen an.
Die wurde Validator
entwickelt, um die Benutzererfahrung zu verbessern. Stellen Sie sich ein Szenario vor, in dem bestimmte Benutzer Schwierigkeiten haben, auf die globale Anwendung zuzugreifen, weil aufgrund eines Vorfalls Zellen vorübergehend nicht verfügbar sind. Anstatt generische Fehler anzuzeigen, kann die Validator
Funktion aufschlussreiche Schritte zur Problembehebung bereitstellen. Diese Schritte können die folgenden Aktionen beinhalten:
Informieren Sie die Benutzer über den Vorfall.
Geben Sie eine ungefähre Wartezeit bis zur Verfügbarkeit des Dienstes an.
Geben Sie eine Support-Kontaktnummer an, um weitere Informationen zu erhalten.
Der Demo-Code für die Validator
Funktion überprüft, ob die vom Benutzer angegebene Zelle URLs in der Anfrage mit den in der Tabelle gespeicherten Datensätzen übereinstimmt. tbl_router
Die Validator
Funktion überprüft auch, ob die Zellen gesund sind.