Разбиение сервера Mosquitto MQTT - PullRequest
       124

Разбиение сервера Mosquitto MQTT

0 голосов
/ 14 декабря 2018

Я хочу создать изолированные среды на одном сервере MQTT.Как и у сервера базы данных, может быть несколько схем, а имена таблиц могут повторяться в разных сашемах.Я хочу иметь «схему MQTT», в которой темы / подписки в одной схеме изолированы от тем в другой «схеме MQTT», чтобы одна и та же тема могла использоваться в разных схемах.Было бы еще лучше, если бы безопасность могла быть применена отдельно для каждой схемы, но это потребовало бы много.Сейчас я просто ищу способ иметь изолированные среды на одном и том же сервере - вероятно, для каждой схемы потребуется отдельный TCP-порт, просто чтобы определить схему назначения подключающегося клиента, поскольку сам протокол не имеет никакой концепциисхемы.Или клиенты могут быть сопоставлены с определенной схемой на основе имени пользователя или идентификатора клиента.

Примечание. Я знаю, как использовать ACL для ограничения доступа к темам для каждого пользователя.ACL не решают эту проблему.Я не просто хочу ограничить доступ к темам, я хочу создать отдельную среду, в которой пользователи могут свободно делать то, что хотят, с темами, не говоря мне, какие названия тем они не могут использовать и т. Д.

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Другим вариантом является параметр конфигурации mount_point, который можно использовать с объявлением listener (man page ).

mount_point префикс темы

Эта опция используется с опцией слушателя для изоляции групп клиентов.Когда клиент подключается к слушателю, который использует эту опцию, строковый аргумент присоединяется к началу всех тем для этого клиента.Этот префикс удаляется при отправке любых сообщений клиенту.Это означает, что клиент, подключенный к прослушивателю с примером точки монтирования, может видеть только сообщения, опубликованные в примере иерархии тем и выше.

Разница между этим и другим параметром (контейнером Docker) заключается в том, чтовы можете иметь объявления прослушивателя, которые могут видеть весь трафик всех различных разделов, имея прослушиватель без точки монтирования.

0 голосов
/ 14 декабря 2018

Просто используйте док-контейнер с запущенным mosquitto и запускайте новые экземпляры для каждой схемы .Сопоставьте каждый экземпляр с отдельным внешним портом.Полная изоляция, включая плагин auth, вы можете сопоставить безопасность отдельной таблице БД для каждой схемы с переменными среды

...