WedX - журнал о программировании и компьютерных науках

Использование одного и того же порта для сервера и удаленных компонентов JMX

Мы используем Embedded Jetty в качестве нашего веб-сервера, работающего на порту 8080, и хотим отслеживать приложение на Jconsole. Мы используем следующее системное свойство при запуске сервера Jetty, специфичного для JMX:

-Dcom.sun.management.jmxremote.access.file=jmxremote.access  
-Dcom.sun.management.jmxremote.password.file=jmxremote.password   
-Dcom.sun.management.jmxremote   
-Dcom.sun.management.jmxremote.authenticate=true   
-Dcom.sun.management.jmxremote.ssl=false   
-Dcom.sun.management.jmxremote.port=8081  

Хотя JMX и веб-сервер работают на двух разных портах, есть ли способ для клиента получить доступ к JMX через Jconsole/JvisualVM с использованием порта 8080? JMX Proxy поможет мне в любом случае? Возможно ли это каким-либо образом?

Заранее спасибо.

Аджай


Ответы:


1

Не без некоторых усилий. Короче говоря, всегда может быть только один сервер на одном порту (или наоборот: серверы не могут совместно использовать порт).

Если бы JMX поддерживал HTTP-запросы, вы могли бы запустить его как сервлет на том же HTTP-сервере. Будет один порт (используемый HTTP-сервером), а затем URL-адреса HTTP позволят серверу определить, хочет ли клиент общаться с JMX или с веб-приложением.

Но JMX не поддерживает HTTP-запросы напрямую. Вы можете попробовать Jolokia (см. этот вопрос) или вы можете написать сервлеты, которые позволяют клиенту запрашивать определенные mbeans (но без протокола JMX).

20.08.2013
  • Спасибо, Аарон. Не могу ли я сделать что-то вроде перенаправления изнутри сервера, поэтому пользователь (пользователь Jconsole, использующий URL-адрес, такой как service:jmx:rmi:///jndi/rmi://host:8080/jmxrmi) все еще может видеть, что порт, который они используют, 8080, в то время как внутренне приложение определяет фактический порт, т.е. 8081, для клиента и делает то, что необходимо? 20.08.2013
  • Как я уже сказал в своем ответе, Jolokia сделает это за вас. 20.08.2013

  • 2

    В спецификации JMX есть Connector, которые могут использовать любой протокол в качестве транспорта, см. https://en.wikipedia.org/wiki/File:Jmxarchitecture.png

    20.08.2013
    Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]