да, это можно сделать.в настоящее время у нас работает чуть менее тысячи «потребителей», которые подключаются к нашим брокерам через Интернет.
Что касается небезопасности трафика через Интернет, я не совсем согласен:
разоблачение веб-службы столь же рискованно, как и разоблачение брокера.В конце концов, вы никогда не уверены на 100%, что ваш собственный код или код или базовое приложение (Apache CXF, веб-сервер, сервер приложений, сервер базы данных, брокер сообщений) содержат недостатки, которые могут представлять угрозу безопасности.Во-вторых, HTTP - это столько же TCP-трафика, сколько ActiveMQ (протокол Stomp или openwire)
При этом вы можете принять все меры, чтобы снизить риск до минимума.
мы сделали следующее:
Имя пользователя и пароль, необходимые для подключения к брокеру (ActiveMQ поддерживает широкий спектр решений по аутентификации, и вы можете при необходимости применить собственное решение)
Переключить порт на другой номер, чтобы обнаружение было более сложным
, если вы также контролируете потребителей, примените IP-фильтры вбрандмауэр, по которому ip-ы могут подключаться к брокеру (к сожалению, в нашем случае это было невозможно)
шифровать ваши сообщения
Мы добавилиАутентификация на уровне приложения, а также с использованием токена.Таким образом, каждое сообщение аутентифицируется в нашем собственном приложении
-> если все это реализовано, я думаю, что вы достаточно безопасны и в качестве бонуса вам не нужен дополнительный слойвеб-сервисов (если это приложение нуждается в масштабировании, вам нужно будет масштабировать ваши веб-сервисы в равной степени с вашими брокерами.