JMX Scalabilty: pode ser usado para gerenciar mais de 400 instâncias?
-
20-09-2019 - |
Pergunta
Estou avaliando soluções para gerenciar mais de 400 instâncias de um aplicativo semelhante ao quiosque. Cada instância executa um aplicativo Java personalizado que exibe informações e interage com os usuários. Estamos pensando se devemos desenvolver uma solução personalizada, tente incluir o suporte JMX para ela ou encontrar outra coisa.
Os requisitos são simples:
- Deve ser uma solução gratuita e de código aberto;
- Ele deve ser capaz de gerenciar mais de 400 instâncias (por exemplo: um gerente que gerencia 400 clientes habilitados para JMX);
- Deve ser preferencialmente programado em Java;
- Precisamos de métricas padrão (por exemplo: recursos disponíveis, tempos de execução, status atual, etc);
- Opcionalmente, gostaríamos de enviar algumas mensagens de controle para as instâncias.
Parece que os recursos e flexibilidade do JMX são o que estávamos procurando. No entanto, não encontrei muito sobre a escalabilidade do JMX. Quantos "clientes" um JMX Manager pode lidar? É possível gerenciar 400 instâncias jmx simultaneamente? Existe alguma arquitetura ou solução alternativa recomendada se não lidar com tantos clientes diretamente?
Obrigado por qualquer dica
Solução
JMX é exatamente o que você deseja.
Quanto a quantos clientes você pode se conectar, eu imagino que, para as partes de monitoramento, você só precisaria buscar dados dos clientes remotos a cada poucos segundos, no máximo, certo?
Não tenho certeza se já existe uma solução que permitirá que você monitore n clientes e também os controle, então você provavelmente gostaria de desenvolver algo sozinho - interagir com MBeans remotos com o código JMX parece ser trivial, o que então transforma isso em um exercício de poder escrever um programa que possa se comunicar simultaneamente com 400 nós com sucesso.