Масштабируемость JMX:можно ли его использовать для управления более чем 400 экземплярами?
-
20-09-2019 - |
Вопрос
Я оцениваю решения для управления более чем 400 экземплярами приложения, похожего на киоск.Каждый экземпляр запускает пользовательское Java-приложение, которое отображает информацию и взаимодействует с пользователями.Мы размышляем, следует ли нам разработать пользовательское решение, попытаться включить для него поддержку JMX или найти что-то еще.
Требования просты:
- Это должно быть бесплатное решение с открытым исходным кодом;
- Он должен быть способен управлять более чем 400 экземплярами (например:один менеджер, управляющий 400 клиентами с поддержкой JMX);
- Предпочтительно, чтобы он был запрограммирован на Java;
- Нам нужны стандартные показатели (например:доступные ресурсы, время выполнения, текущее состояние и т.д.);
- При желании мы хотели бы отправить несколько управляющих сообщений в экземпляры.
Похоже, что возможности и гибкость JMX - это то, что мы искали.Однако я мало что нашел о масштабируемости JMX.Сколько "клиентов" может обработать один менеджер JMX?Возможно ли управлять 400 экземплярами JMX одновременно?Существует ли какая-либо рекомендуемая архитектура или обходной путь, если она не обрабатывает так много клиентов напрямую?
Спасибо за любые подсказки
Решение
JMX - это именно то, что вам нужно.
Что касается количества клиентов, к которым вы можете подключиться, я бы предположил, что для части мониторинга вам действительно нужно будет получать данные от удаленных клиентов максимум каждые несколько секунд, не так ли?
Я не уверен, существует ли уже решение, которое позволит вам отслеживать N клиентов, а также управлять ими, поэтому вы, вероятно, захотите разработать что-то самостоятельно - взаимодействие с удаленными MBEANS с помощью кода JMX кажется тривиальным, что затем превращает это в упражнение по написанию программы, которая может одновременно успешно взаимодействовать с 400 узлами.