Многие процессы Java с mbeans, как управлять портами JMX - PullRequest
0 голосов
/ 04 декабря 2010

Я создаю развертывание, в котором у меня много java-процессов на одной машине. Я хотел бы иметь возможность подключаться к их JMX mbeans, не выходя из моего ноутбука.

Чтобы сделать это, я, очевидно, столкнулся с двумя вариантами:

  1. Используйте VNC для доступа к машине и, таким образом, избегайте назначения портов JMX.
  2. Отслеживайте статически назначенный удаленный порт JMX для каждой службы, указанный в -D в командной строке запуска.

Мне тоже не очень нравится, поэтому я надеюсь, что кто-то может предложить мне одну или несколько других, о которых я еще не подумал. Есть ли способ для кода внутри процесса взаимодействовать с агентом JMX, включить и настроить порт для удаленного доступа? Тогда я мог бы, по крайней мере, использовать свою служебную магистраль для согласования назначений портов для всех этих процессов.

1 Ответ

1 голос
/ 05 декабря 2010

Можно рассмотреть возможность запуска клиента JMX локально в качестве прокси, чтобы у вас был только один порт

Используйте API подключения для подключения ко всем локальным JVM, на которых запущены активные серверы MBean. Таким образом, для JVM не требуется настраивать удаленный доступ, кроме вашего экземпляра прокси.

Не ожидайте, что его будет легко найти с полки, поэтому потребуется некоторое кодирование. Возможно, это даст вам преимущество.

http://blogs.oracle.com/jmxetc/entry/proxying_a_jmx_connection_adapting

...