Java JMX Server

Мне интересно, как JConsole и JMX работают вместе. В частности, я прочитал это Руководство по JConsole, в котором упоминается, что

jconsole uses a JMXConnector client to connect to the JMXConnectorServer in
the target application. If the application isn't started with the JMX agent
then there isn't a JMXConnectorServer and jconsole doesn't have anything to
connect too. In that case it uses a HotSpotTM VM specific mechanism to start
the JMX agent in the target VM. Once the agent is started then jconsole connects
as normal.

Когда я запускаю jconsole, ему просто нужны порт и имя хоста для информации JMX, поэтому мне интересно, возможно ли получить доступ к MBeans через любое произвольное tcp-соединение (и, следовательно, любой язык программирования), или есть что-то особенное, что jconsole тоже делаешь?

Я знаю, как получить доступ к MBean Factory через Java, но мне любопытно, могу ли я получить доступ к этим элементам через произвольный язык через TCP или другой простой механизм. Также смотрите ссылку на обсуждение остальных разъемов.

1 ответ

Решение

По умолчанию сервер JMX обеспечивает соединение через RMI. Это усложнит доступ к серверу через произвольный язык.

Однако сервер JMX не ограничивается RMI в качестве протокола связи. Архитектура является расширяемой, и почти любой транспортный протокол может быть использован, но его нужно будет писать практически с нуля.

Посмотрите на Jolokia - они делают довольно удивительные вещи, позволяя вам общаться с серверами MBean через несколько протоколов (REST является одним из них), среди прочего.

Другие вопросы по тегам