2015-01-31 20 views
9

Ho 100 clienti. Ogni client ha un nome utente, una password e due canali univoci (gli utenti non possono connettersi a canali diversi oltre al proprio). Dovrei creare VirtualHost per ogni utente?VirtualHost è un buon modello in RabbitMQ?

Come scrivere il permesso dell'utente adeguata alla situazione di sotto ?:

  • my_user può connettersi solo a vahost chiamato user_vhost utilizzando username e password
  • my_user può consumare solo dal canale di user_channel
  • my_user può pubblicare solo per il canale user_channel
  • my_user può connettersi a distanza

Grazie!

risposta

14

L'host virale in RabbitMQ è più simile a un contenitore logico in cui un utente connesso a un particolare host virtuale non può accedere a nessuna risorsa (scambio, coda ...) da un altro host virtuale. Ci penso sempre come una specie di dominio amministrativo.

Sulla base di ciò che hai spiegato, penso che avere un host virtuale per utente sia un buon modo per mantenere le cose semplici e pulite. Inoltre, in questo modo non è necessario elaborare complicate regole di autorizzazione, basta concedere le autorizzazioni in base all'host virtuale.

+0

Come creare, eliminare, dichiarare code, scambi ecc.? Il consumatore non dovrebbe avere accesso a questa azione. Posso ottenere questo utilizzando solo il permesso di concessione per vhost? – User

+1

Sì, è possibile impostare quel tipo di permessi usando, ad esempio, 'rabbitmqctl' – hveiga

+0

Come si fa? :-) Sto cercando alcuni esempi :-) – User

Problemi correlati