Можем ли мы использовать JMX для оповещений / уведомлений

StackOverflow https://stackoverflow.com/questions/303613

Вопрос

Вот спецификации, которые я пытаюсь реализовать в двух словах:

1) Некоторые оповещения должны отправляться на определенные события в приложении.

2) На эти оповещения подписаны пользователи.

3) И пользователи установили свои собственные настройки уведомлений (например, электронная почта и / или SMS).

До сих пор мне не удалось найти решение с открытым исходным кодом в Java.

Оповещения JMX - это опция? Чем больше я читаю о JMX, тем больше я чувствую, что он пытается достичь чего-то другого, что является моей проблемой.

Любая помощь будет полезна.

Это было полезно?

Решение

JMX может быть механизмом для решения этой проблемы, но это не полное решение.

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

Как вы упомянули, одним из аспектов JMX является система уведомлений. Эта система предоставляет инфраструктуру, позволяющую вашей программе легко делать оповещения и уведомления доступными для клиентов, а современные JVM также предоставляют бесплатный сервер JMX, позволяющий клиенту удаленно подключаться к вашему приложению и подписываться на эти события.

Но одно дело сделать предупреждение JMX, а другое - полностью действовать на него.

Вам нужно было бы где-нибудь иметь JMX-клиента, " подписаться " на уведомления JMX о ваших программах, а затем ЭТО клиент может действовать в соответствии с этими уведомлениями, отправляя электронные письма или что-то подобное.

JMX-клиент может быть удаленным клиентом, который общается с вашим приложением через TCP, или это может быть внутренний JMX-клиент в программе, скажем, работающий в потоке, и он может воздействовать на уведомления.

Итак, в основном, JMX предоставляет сантехнику и инфраструктуру для того, что вы хотите сделать, но не берет это «на последней миле». для преобразования оповещений в электронные письма.

Как уже упоминалось @fawce, есть некоторые "общие" Клиенты JMX различной сложности, которые могут работать с данными JMX и могут делать то, что вы хотите (я не знаком с ними, поэтому я не могу сказать из первых рук), или вы можете написать свою собственную систему для мониторинга данных JMX.

Другие советы

Если вы имеете в виду JMX, то есть мост JBoss / Nagios с именем monju , который имеет обобщенный хук JMX.

Я бы предложил использовать уведомления JMX и SNMP, которые должны поддерживать ваш сценарий, 2) и 3), охватываемые программным обеспечением SNMP.

Вы также можете кодировать его на Java самостоятельно, если у вас есть доступ к шлюзу SMS с некоторым API. Использовать javax.mail просто, если у вас есть доступ к узлу SMTP, позволяющему анонимный доступ. Гибкий механизм публикации-подписки для 2) может использоваться для соединения 1) и 3).

вот хорошая статья с примером кода для использования jms в вашем приложении для создания оповещений текст ссылки . как только у вас будет эта работа с локальным мониторингом, вам нужно установить -Dom.sun.management.jmxremote.port = 9999 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false, так что вы можете подключиться с удаленной машины. хорошая простая программа для мониторинга java с поддержкой jmx, которая может отображать веб-страницы с движущимися графиками и отправлять уведомления по электронной почте при изменении порогов текст ссылки . это также позволит вам удаленно управлять своими приложениями через веб-страницы. красиво и просто. Конечно, если вы используете jmx, вы можете легко заменить его на что-нибудь более сложное, например, nagios или какой-нибудь дорогой коммерческий инструмент. Ключевым моментом этих инструментов является то, что у них есть рабочий процесс, рот и прочее для управления большой командой людей, желающих позаботиться о многих вещах (базы данных, серверы, Java и т. д.) - что может быть слишком сложно, если вы только начинаете с получением Java стороны JMX работает.

Solarwinds - это инструмент мониторинга коммерческого предприятия, который может подключаться к JMX для мониторинга. Он имеет возможность генерировать SMS и оповещения по электронной почте.

Вы имеете в виду JMS (вместо JMX)? JMS - это API обмена сообщениями, а JMX - API мониторинга / администрирования. Использование JMS в качестве внутреннего интерфейса является хорошим способом реализации внутренних сообщений, оно позаботится о развязке, балансировке нагрузки и постоянстве. Но вам все равно нужен компонент, который получает сообщения и отправляет их пользователю.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top