Wie viele andere Unternehmen ist auch der, für den ich arbeite, nicht komfortabel mit APNS von Apple: Keine offizielle Bibliothek, Streams, die zufällig abgeschnitten werden usw ... Das gleiche gilt für das Push-System von Android: Begrenzt auf kleine Chargen, ganz anders als Apples APNS ... Deshalb suchen wir nach einer Alternative und als Amazon behauptete, wir könnten Millionen von Push-Benachrichtigungen fast kostenlos senden dachte, dass SNS die perfekte Lösung wäre.So senden Sie eine Charge von Millionen Push-Benachrichtigungen mit dem Amazon Simple Notification Service (SNS)
Das Problem ist, dass wir häufig mehr als eine Million Geräte ansprechen müssen, und offensichtlich zielen unsere Push-Kampagnen selten auf dieselben Geräte ab. Soweit wir gegraben haben, ist die einzige Lösung, die AWS-API zu verwenden, die nur eine Methode zur Verfügung stellt, um die Endpunkte nacheinander zu erstellen! Das ist eine große Sache für uns, denn nach einigen Tests haben wir festgestellt, dass es für die Erstellung von 1 000 000 Endpunkten etwa 15 Stunden (~ 17 Aufrufe/Sek.) Dauern würde.
Auch nachdem alle Endpunkte erstellt wurden, müssen die Endpunkte zu einem Thema hinzugefügt werden, um alle Pushs gleichzeitig zu senden, und dies wiederum muss jeweils Endpunkt für Endpunkt erfolgen (also 15 weitere Stunden)). Ereignis, wenn wir unsere Anrufe multithreaded, sagen wir 30 Threads, würde es noch eine Stunde dauern!
Also, könnte uns jemand sagen, ob wir etwas übersehen haben? Erwartet Amazon wirklich, dass wir seine Webdienste während 30 Stunden überfluten, um eine Push-Kampagne zu erstellen? Wie können sie vorgeben, eine Million Pushs in einer Sekunde zu senden, wenn es Stunden dauert, sie vorzubereiten? Arbeiten sie an einer Batch-API für SNS? Ist es möglich, eine Amazon DB mit den Tokens zu verbinden, um ein SNS-Thema zu füttern?
Darf ich fragen, Sie waren synchron all diese Arbeit zu tun? Warten auf die Erstellung eines EndpointArn vor dem Erstellen des nächsten? Ich werde Ihnen ähnlich sein, aber planen Sie alle Anrufe asynchron. Ich versuche nur zu antizipieren, was ich erfahren könnte basierend auf was du erlebt hast. Vielen Dank. –
Das gleiche Problem hier. Amazon hat mein Konto zu der Feature-Anfrage hinzugefügt, aber wir wissen, dass dies wenig bedeutet. Anstatt unsere Nutzer zu Themen zu abonnieren, senden wir die Nachrichten direkt an die Publish API, da es sich um dieselbe Sache handelt. Es dauert immer noch eine Ewigkeit, wir müssen in der Lage sein, 10.000 pro Minute fallen zu lassen. Crazy Amazon unterstützt keine Massenanforderung –
Es gibt eine bestimmte Anforderungsgrenze, die Sie von einer EC2-Instanz aus ausführen können. Aber Amazon sagt dir nicht, wie viel es ist ... Also solltest du ungefähr 15x t2.micro-Instanzen starten, so dass jeder EC2 sein eigenes Anforderungslimit hat. Mit diesem Ansatz würde Ihr Prozess 15x schneller enden –