Al momento stiamo usando l'archivio KahaDB per la persistenza dei messaggi in ActiveMQ e fino ad ora buoni.
Come per le note di rilascio di ActiveMQ5.6, LevelDB
fornisce prestazioni migliorate.
Qualcuno ha provato a usignare LevelDB e, in tal caso, è possibile fornire pro e contro?Qualcuno ha utilizzato l'archivio LevelDB per la persistenza dei messaggi ActiveMQ?
risposta
Si prega di consultare questo link: https://github.com/fusesource/fuse-extra/tree/master/fusemq-leveldb#how-to-use-with-activemq-56 C'è un piccolo confronto per leveldb vs kahadb.
Attualmente sto provando su un sistema con un elevato throughput di messaggi e vedo già risultati migliori. Devo ancora vedere se è stabile, ma così buono.
FYI: Ecco un link per la documentazione ufficiale per la ActiveMQ LevelDB Store
Contro:
- E 'un marchio nuovo negozio, quindi può ancora avere qualche bug lasciati in esso.
- Gli indici di LevelDB devono occasionalmente "compattarsi" che POTREBBERO bloccare le nuove scritture.
- non si può semplicemente eliminare l'indice e ricostruirlo dai file di dati, come si può con KahaDB
- KahaDB gestisce danneggiamento del disco molto più garbo, recuperando ciò che può e scartando record danneggiati.
Pro:
- accodamento lo più schemi di accesso disco migliorare perf sul disco di rotazione.
- sincronizzazioni disco meno KahaDB voci
- Meno di indice devono essere inserite per messaggio memorizzato ricerche
- Meno indice necessari per caricare un messaggio dal disco nella memoria
- utilizza la compressione Snappy per ridurre la sulla dimensione del disco dell'indice voci
- Compressione Snappy facoltativa dei registri di dati.
- Un'invio a una destinazione composita memorizza il messaggio su disco una sola volta.
- GC di file di dati più veloci e più frequenti.
- Ha un 'Replicated' variation dove può auto-replicarsi per i broker "slave" per garantire il livello di messaggio HA.
Abbiamo utilizzato lo store levelDB un mese due ora in produzione su NFS (con failover di blocco file standard configurato). Abbiamo avuto un negozio corrotto diverse volte nelle ultime settimane, senza errori nei registri ... solo le code che si accumulano e un throughput molto basso. L'unica cosa che potremmo fare per risolvere questo problema è buttare via il negozio e ricominciare da capo.
Quindi, per il momento, siamo tornati al vecchio e affidabile negozio KahaDB.
puoi per favore registrare un bug con qualsiasi informazione che puoi fornire sulla tua configurazione per riprodurre questo: https://issues.apache.org/jira/browse/AMQ –
La maggior parte dei reclami relativi alle prestazioni effettuati per LevelDB sembra essere una richiesta vuota. Si suppone che supporti letture di concorrenza elevate, ma i test multi-thread non mostrano guadagni di concorrenza.https://github.com/ayende/raven.voron/pull/9#issuecomment-29764803
(Al contrario, LMDB mostra migliori guadagni di prestazioni lineari per legge tra più CPU. https://github.com/ayende/raven.voron/pull/9#issuecomment-29780359)
Ho fatto numerosi test di prestazioni AMQ e non è stato in grado di ottenere una differenza statisticamente significativa tra LevelDB vs. KahaDB in i miei test: http://whywebsphere.com/2015/03/12/ibm-mq-vs-apache-activemq-performance-comparison-update/
grazie per aver menzionato la gestione dei file corrotti kahadb. abbiamo avuto alcuni problemi con i file leveldb corrotti. –