Ich bin auf der Suche nach einer Pub / Sub-Engine mit folgenden Anforderungen:
Ich möchte mehrere Pub / Sub-Server haben und Kanäle von jedem Server aus veröffentlichen oder abonnieren können, egal auf welchem Server der Channel deklariert ist.
Zum Beispiel:
Wenn Benutzer A mit dem Server SRV1 und Benutzer B mit dem Server SRV2 verbunden ist, wenn Benutzer B abonnieren Sie " MyChannel " und Benutzer A auf dem Kanal " MyChannel ", Benutzer B erhält die Nachricht, auch wenn er nicht mit demselben Server verbunden ist.
Ich weiß nicht, ob Redis das kann. Ich habe nichts über das Thema gefunden. Jede Hilfe ist willkommen.
Ich schlage vor, dass Sie sich den Datenverteilungsservice für Echtzeit-Systeme (DDS) ansehen. Es ist speziell als skalierbare Pub / Sub-Middleware für Echtzeit- und Nicht-Echtzeit-Systeme konzipiert.
Es hat einige ausgereifte Implementierungen, die alle ihre eigenen Stärken haben, aber im Allgemeinen sind die Implementierungen skalierbar und haben eine niedrige Latenz.
Dies sind die Implementierungen, die ich Ihnen empfehlen würde (Wenn Sie sie in einer WAN-Umgebung verwenden müssen, haben die ersten beiden wahrscheinlich eine große Unterstützung):
Es scheint, dass Sie nach einer Art von Messaging suchen. Probier RabbitMQ , mit Schaufel oder Föderation Plugins
nanomsg
ist ein Nachfolger von ZeroMQ
, vom selben Autor geschrieben und mit vielen Sprachbindungen.
Es ist in C geschrieben und verwendet keine Kopiermechanismen. Wenn Sie nach außergewöhnlicher Latenz suchen und bereit sind, Ihre Hände schmutzig zu machen (was Sie tun sollten, wenn Sie nach etwas Extremem streben), würde ich eines dieser beiden empfehlen.
Wenn Sie nach einem außergewöhnlichen Durchsatz suchen, verwenden Sie Kafka
.
Beachten Sie, dass keine dieser Lösungen die Geolocation direkt implementieren, Redis 3.2 wird etwas haben: Ссылка
Wenn Sie nach einer einfachen, "gut genug" Lösung suchen, würde ich mit Redis
gehen (achten Sie darauf, dieser Blog-Post von Aphyr zuerst).
Tags und Links real-time sharding redis scalability publish-subscribe