2015-01-31 14 views
9

Tôi có 100 khách hàng. Mỗi khách hàng có tên người dùng, mật khẩu và hai kênh duy nhất (người dùng không thể kết nối với các kênh khác nhau). Tôi có nên tạo VirtualHost cho mỗi người dùng không?VirtualHost có phải là mô hình tốt trong RabbitMQ không?

Làm thế nào để viết cho phép người sử dụng thích hợp với tình hình dưới đây ?:

  • my_user có thể kết nối duy nhất vahost gọi user_vhost sử dụng usernamepassword
  • my_user có thể tiêu thụ chỉ từ kênh user_channel
  • my_user thể chỉ xuất bản lên kênh user_channel
  • my_user có thể kết nối từ xa

Cảm ơn bạn!

Trả lời

14

Máy chủ ảo trong RabbitMQ giống như một thùng chứa hợp lý nơi người dùng kết nối với một máy chủ ảo cụ thể không thể truy cập bất kỳ tài nguyên nào (trao đổi, xếp hàng ...) từ một máy chủ ảo khác. Tôi luôn nghĩ về nó như một loại tên miền hành chính.

Dựa trên những gì bạn đã giải thích, tôi nghĩ rằng việc có một máy chủ ảo cho mỗi người dùng là một cách hay để giữ mọi thứ đơn giản và rõ ràng. Ngoài ra, theo cách này, bạn không cần phải đưa ra các quy tắc quyền phức tạp, chỉ cần cấp quyền dựa trên máy chủ ảo.

+0

Cách tạo, xóa, khai báo hàng đợi, trao đổi, v.v ...? Người tiêu dùng không nên có quyền truy cập vào hành động này. Tôi có thể đạt được điều này bằng cách chỉ cấp quyền cho mỗi vhost? – User

+1

Có, bạn có thể đặt loại quyền đó bằng cách sử dụng, ví dụ: 'rabbitmqctl' – hveiga

+0

Cách thực hiện? :-) Tôi đang tìm kiếm các ví dụ vài giờ :-) – User

Các vấn đề liên quan