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 является одним из них), среди прочего.