2012-08-31 5 views
12

Come posso utilizzare due progetto diverso sedano che consuma i messaggi di installazione singolo RabbitMQ.progetti multi sedano con lo stesso RabbitMQ mediatore processo di backend

Generalmente, questi script funzionano correttamente se utilizzo diversi rabbitmq per essi. Ma sulla macchina di produzione, ho bisogno di condividere lo stesso backend RabbitMQ per loro.

Nota: a causa di alcuni vincoli, non riesco a unire nuovi progetti esistenti, quindi saranno due progetti diversi.

risposta

18

RabbitMQ ha la capacità di creare mediatori di messaggi virtuali denominati host virtuali o vhost. Ciascuno è essenzialmente un server mini-RabbitMQ con le sue code. Ciò consente di utilizzare in modo sicuro un server RabbitMQ per più applicazioni.

rabbitmqctl add_vhost comando crea un vhost.

Di Sedano predefinita utilizza il vhost / default:

lavoratore sedano --broker = AMQP: // localhost ospite @ //

Ma è possibile utilizzare qualsiasi vhost personalizzato:

sedano lavoratore --broker = AMQP: // ospite @ localhost/myvhost

Esempi:

rabbitmqctl add_vhost new_host 
rabbitmqctl add_vhost /another_host 

lavoratore sedano --broker = AMQP: // ospite @ localhost/new_host

lavoratore sedano --broker = AMQP: // localhost ospite @ // another_host

+0

Ha funzionato alla grande. Prima di implementare questo metodo, stavo provando con diverse configurazioni di Queue/Exchange, ma non funzionava. Con diversi VHOST, non c'è conflitto e entrambe le app di Celery funzionano bene per me. –

Problemi correlati