Я прочитал руководство Get Started , предоставленное RabbitMQ, и даже внес шестой пример в stormed-amqp , поэтому у меня есть знания о AMQP.
Однако это руководство не является исчерпывающим и избегает таких вещей, как аутентификация и авторизация.
Мы разрабатываем многопользовательскую систему, которая будет использовать RabbitMQ в RPC-ситуации. Что, возможно, отличается в этой реализации RPC, так это то, что удаленные процедуры на самом деле будут другими программами-арендаторами в системе.
По сути, я хочу изолировать шины данных, которые включают в себя следующие утверждения:
- Наш сервер не будет доставлять данные не той программе-арендатору (это легко обрабатывается и актуально, но не подвергается сомнению).
- Программы-арендаторы не могут читать данные из не принадлежащих им очередей.
- Программы-арендаторы не могут писать в не принадлежащие им очереди.
Этот вопрос касается исключительно безопасности RabbitMQ. Я знаю, что RabbitMQ поддерживает SSL, который обеспечивает сквозное шифрование, и я знаю, что RabbitMQ поддерживает аутентификацию по имени пользователя и паролю. Я не знаю, относятся ли эти вещи к приватизации использования очереди (или ACL), т. Е. Соединение может быть зашифровано, и пользователь может быть проверен, но пользователь может читать и записывать из всех очередей.
Кто-нибудь может просветить меня по этой более сложной теме? Я уверен, что RabbitMQ может поддерживать такую систему, но не совсем позитивную. Я знаю, что в RabbitMQ есть вещи, о которых я просто не знаю, например, что такое vhosts и помогут ли они в этой ситуации? Я просто не вижу решения в моих текущих знаниях, ограниченных ключами маршрутизации, именами очереди и обменами.