Jeder Server verfügt über eine begrenzte Kapazität zur Ausführung bestimmter Aufgaben. Sie können nicht davon ausgehen, dass Ihr dedizierter Server mit einer xyz-Konfiguration jedes NFR für Ihre Anwendung erreicht. Sie müssen die Serverkapazität planen, um Ihre NFR-Anwendung zu erreichen. Wenn Ihr dedizierter Server in der Lage ist, 10K Push-Benachrichtigungen innerhalb von 1 Sekunden mit optimaler Konfiguration von Server und Anwendung zu senden, und Sie 20K Benachrichtigungen in 1 Sekunde erreichen möchten, müssen Sie die horizontale/vertikale Skalierung des Servers vornehmen.
Bei der horizontalen Skalierung legen Sie eine weitere parallele Instanz und teilen Sie die Aufgabe zwischen ihnen, aber vertikal skalieren Sie den gleichen Server, um eine höhere Konfiguration zu haben. Die vertikale Skalierung wird nicht empfohlen, da sie einen Single Point of Failure aufweist.
Für Ihr Problem zu skalieren müssen Sie eine andere Instanz parallel in teilen die Push-Benachrichtigung Aufgabe zwischen ihnen zu teilen. Wenn Sie zum Beispiel 20K-Push-Benachrichtigungen mit einer Sekunde für 20K-Geräte senden möchten, können Sie zuerst 10K auf den ersten Server und dann 10K auf einen anderen Server aufteilen. Dies wird Ihre NFR von 20K Push-Benachrichtigung mit in einer Sekunde erreichen.
Mehrere Server haben ... –
@LawrenceCherone Ja. Ich habe mehrere Dateiserver, mehrere Datenbankserver und mehrere memcached Server. –
Anzahl der benötigten Server = 1.000.000/max. Anzahl Benachrichtigungen pro Server pro Sekunde. – Robbie