2014-05-14 19 views
12

Qualcuno sa se esiste un database H2 equivalente per le code RabbitMQ (o con capacità di estensione per renderlo compatibile con RabbitMQ)?In memory queue server

Vorrei eseguire i test di integrazione senza dover avviare e connettersi a un server RabbitMQ esterno. Sarebbe molto più bello se potessi avviare il server prima che venga eseguito un determinato set di test, connetterci e quindi spegnere tutto prima che venga eseguito il prossimo set di test.

+0

Fondamentalmente si sono alla ricerca di un'alternativa a RabbitMQ che possa essere incorporata. Sei sicuro che RabbitMQ non abbia le stesse opzioni di incorporamento? ActiveMQ fa per esempio. http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html – Gimby

+0

Grazie per il suggerimento. Non l'ho cercato in particolare, ma avrò uno sguardo. Poiché viene eseguito con erlang, non sembra offrire questa funzionalità a causa delle sue dipendenze. – alxbrd

risposta

8

Dopo alcune ricerche ho scoperto che esiste un'intercambiabilità tra broker e clienti per la stessa versione di AMQP.

Vale a dire, una libreria client implementata per utilizzare AMQP 0.9.1 dovrebbe in teoria essere in grado di connettersi a un broker che implementa AMQP 0.9.1. Ciò ovviamente comporta alcune limitazioni relative a funzionalità specifiche implementate in un client/broker che non sono definite nello standard AMQP.

Maggiori dettagli sulla funzionalità supportate possono essere trovate qui sotto al seguente url: https://www.rabbitmq.com/interoperability.html

Sto usando Apache Qpid come una sostituzione per il server incorporato RabbitMQ.

Il modo più semplice per iniziare è quello di creare un file di configurazione iniziale dal binario eseguibile Qpid (documentata nel manuale per il broker Java) usare queste informazioni per il codice per avviare il broker:

BrokerOptions configuration = new BrokerOptions("path-to-initial-configuration.json); 
Broker broker = new Broker(); 
broker.startup(configuration); 
+1

Proprio sul posto! Ho il sospetto che mi imbatterò in problemi usando le funzionalità 'publisher conferma'/'publisher restituisce' che non fa parte se lo standard. Pubblicherò i miei risultati qui non appena saprò come gestire questo problema. –