2015-01-31 5 views
9

Ich habe 100 Kunden. Jeder Client verfügt über einen eindeutigen Benutzernamen, ein Passwort und zwei Kanäle (Benutzer können nicht mit anderen Kanälen als ihren eigenen verbinden). Sollte ich VirtualHost für jeden Benutzer erstellen?Ist VirtualHost ein gutes Muster in RabbitMQ?

Wie die unten Situation richtigen Benutzerberechtigung schreiben ?:

  • my_user nur verbinden können, um vahost user_vhostusername und password
  • my_user kann
  • my_user nur vom user_channel Kanal verbrauchen namens können veröffentlichen Sie nur die user_channel Kanal
  • my_user kann remote verbinden

Vielen Dank!

Antwort

14

Virutal-Host in RabbitMQ ähnelt mehr einem logischen Container, in dem ein Benutzer, der mit einem bestimmten virtuellen Host verbunden ist, nicht auf eine Ressource (Exchange, Queue usw.) von einem anderen virtuellen Host zugreifen kann. Ich denke immer darüber nach wie eine Verwaltungsdomäne.

Basierend auf dem, was Sie erklärt haben, denke ich, einen virtuellen Host pro Benutzer ist eine gute Möglichkeit, Dinge einfach und sauber zu halten. Außerdem müssen Sie auf diese Weise keine komplizierten Berechtigungsregeln erstellen, sondern nur Berechtigungen basierend auf dem virtuellen Host erteilen.

+0

Wie wäre es mit dem Erstellen, Löschen, Deklarieren von Warteschlangen, Börsen usw.? Der Verbraucher sollte keinen Zugriff auf diese Aktion haben. Kann ich dies erreichen, indem ich nur die Berechtigung pro vhost erteile? – User

+1

Ja, es ist möglich, diese Art von Berechtigungen mit z. B. 'rabbitmqctl' zu setzen. – hveiga

+0

Wie geht das? :-) Ich suche Beispiele mehrere Stunden :-) – User