Se dovessi progettare un enorme sistema distribuito il cui throughput dovrebbe scalare linearmente con il numero di abbonati e il numero di canali nel sistema, quale sarebbe meglio?Redis Cluster vs ZeroMQ in Pub/Sub, per sistemi distribuiti scalati orizzontalmente
1) Redis Cluster (solo per Redis 3.0 alpha, se in modalità cluster, è possibile pubblicare in un nodo e iscriversi in un altro nodo completamente diverso, ei messaggi si propaga e raggiungere voi). La complessità di Publish è O (N + M), dove N è il numero di client sottoscritti e M è il numero di pattern sottoscritti nel sistema, ma come viene ridimensionato in un cluster Redis? Accetto ipotesi plausibili su questo.
2) ZeroMQ dal 3.x, fa filtraggio sul lato server, quindi ha anche una certa complessità di tempo, ma non ho visto nulla al riguardo nella documentazione. Se volessi ridimensionarlo, potrei avere un sacco di server che pubblicano su qualunque canale, e ogni sottoscrittore si collegherebbe a tutti i server e sottoscriverebbe il canale desiderato. Sembra carino.
Quindi, quale di questi è meglio per il ridimensionamento orizzontale di un enorme sistema di pubblicazione? Quali sono le altre soluzioni che dovrei esaminare? Ricorda, voglio ridurre al minimo la latenza e il throughput, ma essere in grado di scalare orizzontalmente.
Sono presenti dati a supporto del reclamo? Potresti leggere la mia domanda in merito al tuo reclamo? http://stackoverflow.com/questions/26319304/redis-of-channels-degrading-latency-how-to-prevent-degradation – ealeon