2015-01-31 2 views
9

У меня 100 клиентов. Каждый клиент имеет уникальное имя пользователя, пароль и два канала (пользователи не могут подключаться к разным каналам отдельно от своих собственных). Должен ли я создавать VirtualHost для каждого пользователя?Является ли VirtualHost хорошим шаблоном в RabbitMQ?

Как написать правильное разрешение пользователя ниже ситуации ?:

  • my_user может подключаться только к vahost называется user_vhost использованием username и password
  • my_user может потреблять только из user_channel канала
  • my_user может опубликовать только на канале user_channel
  • my_user можно подключить дистанционно

Thank you!

ответ

14

Virutal host в RabbitMQ больше похож на логический контейнер, в котором пользователь, подключенный к определенному виртуальному хосту, не может получить доступ к любому ресурсу (обмену, очереди ...) с другого виртуального хоста. Я всегда думаю об этом как об административном домене.

Основываясь на том, что вы объяснили, я думаю, что наличие виртуального хоста на пользователя - хороший способ сохранить все просто и чисто. Кроме того, таким образом вам не нужно создавать сложные правила разрешений, просто предоставить разрешения на основе виртуального хоста.

+0

Как насчет создания, удаления, объявления очередей, обмена и т. Д.? Потребитель не должен иметь доступ к этому действию. Могу ли я достичь этого, используя только разрешение на vhost? – User

+1

Да, можно установить такие разрешения, используя, например, 'rabbitmqctl' – hveiga

+0

Как это сделать? :-) Я ищу несколько примеров :-) – User

Смежные вопросы