Wenn ich ein riesiges verteiltes System entwerfen sollte, dessen Durchsatz sollte linear mit der Anzahl der Abonnenten und der Anzahl der Kanäle im System skalieren, was wäre besser?Redis Cluster vs ZeroMQ in Pub/Sub, für horizontal skalierte verteilte Systeme
1) Redis Cluster (nur für Redis 3.0 alpha, wenn es im Cluster-Modus ist, können Sie in einem Knoten veröffentlichen und in einem anderen völlig anderen Knoten abonnieren, und die Nachrichten werden propagieren und Sie erreichen). Die Komplexität von Publish ist O (N + M), wobei N die Anzahl der abonnierten Clients und M die Anzahl der abonnierten Muster im System ist, aber wie skaliert es in einem Redis-Cluster? Ich akzeptiere fundierte Vermutungen dazu.
2) ZeroMQ seit 3.x, es serverseitige Filterung, so hat es auch einige Zeit Komplexität dort, aber ich habe nichts darüber in der Dokumentation gesehen. Wenn ich es skalieren möchte, könnte ich einfach viele Server haben, die auf beliebigen Kanälen veröffentlichen, und jeder Abonnent würde sich mit allen Servern verbinden und den gewünschten Kanal abonnieren. Das scheint nett zu sein.
Also welche davon ist besser für horizontale Skalierung eines großen Publisher-System? Was sind andere Lösungen, die ich untersuchen sollte? Denken Sie daran, ich möchte die Latenz und den Durchsatz minimieren, aber horizontal skalieren können.
Gibt es Daten, die Ihren Anspruch unterstützen? Kannst du meine Frage zu deinem Anspruch lesen? http://stackoverflow.com/questions/26319304/redis-of-channels-degrading-latency-how-to-prevent-degradation – ealeon