Ich habe Esper (und Storm) für die Stream-Verarbeitung angeschaut. Esper scheint genau das zu tun, was ich will .. dh Rolling bedeutet, Median, komplexe Abfragen, etc ... aber eine Sache hat mich gewundert.
Wie würde ich mit Esper auf mehrere Instanzen skalieren?
Soweit ich weiß, übernimmt Storm die verteilte Verarbeitung, aber mit Esper bist du allein.
Ich würde es nicht für die vorhersehbare Zukunft tun müssen, aber wenn wir wachsen, müssten auch unsere Datenmengen skaliert werden. Wahrscheinlich würden wir in Amazon EC2 eingesetzt werden.
Müsste ich mehrere Server und Shard-Daten ausführen, bevor ich sie an meine Esper-Anwendung sende?
Gibt es eine elegantere Art, damit umzugehen?
-Sajal
Sie können eine Esper-Instanz innerhalb einer Schraube ausführen, was bedeutet, dass Storm Tupel / Event-Föderation behandelt und Esper die CEP bei Ereignissen behandelt, die sie in einer bestimmten Schraube empfängt.
Hier finden Sie Code und Informationen zum Einbetten von Esper in eine Storm-Schraube: Ссылка
Allerdings ... Sie benötigen einen Anwendungsfall, der relativ zustandslose Esper-Engines unterstützt, die eine Teilmenge von Daten verarbeiten.
Beispiel: Sie berechnen die durchschnittliche Tagestemperatur nach Stadt. Wenn Sie Ihre Tupel nicht mit shuffleGrouping basierend auf dem Stadtfeld verteilen, kann jede Esper-Schraube unterschiedliche Daten pro Stadt haben.
Im Grunde sollten Sie sich unbedingt darüber informieren, wie Daten in einer Storm-Topologie verteilt werden, bevor Sie sich an diese Architektur binden.
Aus Ihrer Frage scheint EsperHA relevant zu sein? Hast du das angeschaut?
EsperHA ist eine Komplettlösung für ein ESP / CEP-Ereignis ohne Ausfallzeiten wird bearbeitet. Es kombiniert Esper mit lokalem In-Memory-Caching, resilient Überlauf auf Festplatte oder Datenbank und Cluster-Konfiguration mit Hot Backup-Funktionen.
Tags und Links amazon-ec2 scalability esper cep