Desidero un feedback sul fatto che le mie valutazioni e preoccupazioni siano corrette.DDS vs AMQP vs ZeroMQ
Sono stato reseaching tre, Data Distribution Service, AMQP e ZeroMQ per qualche ora per la creazione di un livello di trasporto dati in un datacenter. Tutti e tre sembrano promettenti, tuttavia ho riscontrato alcuni problemi di blocco in pochi.
Per dare un contesto, i miei requisiti sono:
- Scala FINO 500+ nodi fisici, 1000+ editori e gli abbonati.
- Supportare la consegna duratura dei messaggi per prendersi cura degli abbonati in errore.
- La velocità aggregata dovrebbe essere a nord di 1 milione di messaggi/sec
Problemi con AMQP:
- L'architettura Broker sembra essere un collo di bottiglia e punto centrale del fallimento di tutta l'installazione distribuzione. Posso complicare la distribuzione implementando una federazione e un cluster per migliorare le prestazioni e la disponibilità dei messaggi in sospeso, ma non sembrano ancora resistenti ai guasti.
- Le prestazioni per le code resistenti sembrano essere molto inferiori. La mia applicazione di esempio poteva solo sincronizzare i messaggi 6-7K/core/queue/application.
Problemi con ZeroMQ:
- La documentazione sembra essere un po 'che vogliono in profondità.
- Il comportamento del sistema per i messaggi in sospeso sembra causare problemi nel modello di comunicazione PUB/SUB. Si prega di fare riferimento a: How zeromq handles slow consumers with PUB/SUB mode
OpenSplice DDS: non ho trovato nulla manca nel protocollo DDS tranne che per l'adozione del settore. Vorrà conoscere una recensione di prima mano su questo prodotto in termini di stabilità, prestazioni o limitazioni.
Affronterò la domanda in modo approfondito ma per ora voglio suggerire di aggiungere il tag "data-distribution-service" invece di "dds". Quest'ultimo sembra essere stato dirottato dalla programmazione grafica. –
Grazie Holger, ho aggiornato i tag. – Kisalay
Solo per rendere la discussione collegata ZeroMQ più sottile: per PUB/SUB, esiste effettivamente un limite per sottoscrittore preimpostato sulla dimensione della coda dei messaggi, su cui vengono eliminati i messaggi. Ma esiste anche l'opzione ZMQ_SWAP, con la quale è possibile abilitare lo scambio dei messaggi sui dischi. Citando [1] "Tuttavia, c'è una via d'uscita. ØMQ fornisce qualcosa chiamato >> scambio <<, che è un file del disco che contiene messaggi che non possiamo memorizzare nella coda" [1] http: // zguide.zeromq.org/chapter:all – ron