JMX
Поддерживается только потребитель
Apache Camel имеет обширную поддержку JMX, позволяющую вам отслеживать и управлять объектами, управляемыми Camel, с помощью JMX-клиента.
Camel также предоставляет компонент JMX, который позволяет подписываться на уведомления MBean.
Note
Если вы запускаете Camel в автономном режиме только с зависимостью camel-core и хотите, чтобы JMX был включён из коробки, вам нужно добавить зависимость camel-management.
Configuring Options
Компоненты настраиваются на двух отдельных уровнях:
-
component level
-
edpoint level
Configuring Component Options
На уровне компонента задаются основные и общие настройки, которые впоследствии наследуются endpoints. Это самый высокий уровень конфигурации.
Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевых подключений и т. д.
Некоторые компоненты имеют всего несколько параметров, в то время как у других их может быть много. Поскольку компоненты обычно имеют предварительно настроенные значения по умолчанию, которые используются в большинстве случаев, вам может понадобиться настроить только несколько параметров компонента или вообще ничего не настраивать.
Компоненты можно настроить с использованием:
-
Component DSL.
-
Конфигурационного файла (application.properties, *.yaml files, etc).
-
Напрямую в Java code.
Configuring Endpoint Options
Обычно больше времени уходит на настройку endpoints, так как они обладают множеством параметров. Эти параметры позволяют настроить поведение endpoint в соответствии с вашими потребностями. Кроме того, параметры делятся на категории в зависимости от того, используется ли endpoint как потребитель (from), как производитель (to) или в обеих ролях.
Настройка endpoints чаще всего выполняется непосредственно в URI endpoint в виде параметров пути и запроса. Также вы можете использовать Endpoint DSL и DataFormat DSL как типобезопасный способ настройки endpoints и форматов данных в Java.
Хорошей практикой при настройке параметров является использование Property Placeholders.
Property placeholders предоставляют несколько преимуществ:
-
Помогают избежать использования жестко закодированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.
-
Позволяют вынести конфигурацию за пределы кода.
-
Делают код более гибким и удобным для повторного использования.
Component properties
Difference Mode
-
Если true, то значение, передаваемое в уведомлении, является разницей от threshold, а не самим значением (только для счётчика и монитора-измерителя).
-
По умолчанию: false
-
Тип: boolean
Format
-
Формат тела сообщения. Либо xml, либо raw. Если xml, уведомление сериализуется в xml. Если raw, то исходный java-объект устанавливается как тело сообщения.
Возможные значения:
-
xml
-
raw
-
-
По умолчанию: xml
-
Тип: String
Granularity Period
-
Частота опроса бина для проверки монитора (только для типов мониторов).
-
По умолчанию: 10000
-
Тип: long
Init Threshold
-
Начальный threshold для монитора. Значение должно превысить его, прежде чем будут отправлены уведомления (только для счётчика).
-
По умолчанию:
-
Тип: int
Modulus
-
Значение, при котором счётчик сбрасывается в ноль (только для счётчика).
-
По умолчанию:
-
Тип: int
Monitor Type
-
Тип: Тип создаваемого монитора. Один из: string, gauge, counter (только для типов мониторов).
Возможные значения:
-
counter
-
gauge
-
string
-
-
По умолчанию:
-
Тип: String
Notify Differ
-
Если значения true, будет отправлено уведомление, когда строковый атрибут отличается от строки для сравнения (строковый монитор или потребитель). По умолчанию потребитель уведомляет о совпадении, если настроены наблюдаемый атрибут и строка для сравнения.
-
По умолчанию: false
-
Тип: boolean
Notify High
-
Если значение true, измеритель отправит уведомление при превышении верхнего порога (только для монитора-измерителя).
-
По умолчанию: false
-
Тип: boolean
Notify Low
-
Если значение true, измеритель отправит уведомление при превышении нижнего порога (только для монитора-измерителя).
-
По умолчанию: false
-
Тип: boolean
Notify Match
-
Если значение true, будет отправлено уведомление, когда строковый атрибут совпадает со строкой для сравнения (строковый монитор или потребитель). По умолчанию потребитель уведомляет о совпадении, если настроены наблюдаемый атрибут и строка для сравнения.
-
По умолчанию: false
-
Тип: boolean
Object Domain
-
Обязательный параметр - Домен для mbean, к которому вы подключаетесь.
-
По умолчанию:
-
Тип: String
Object Name
-
Ключ имени для mbean, к которому вы подключаетесь. Это значение взаимно исключает свойства объекта, которые передаются.
-
По умолчанию:
-
Тип: String
Observed Attribute
-
Тип: Атрибут для наблюдения в мониторе или потребителе.
-
По умолчанию:
-
Тип: String
Offset
-
Величина, на которую увеличивается threshold после его превышения (только для счётчика).
-
По умолчанию:
-
Тип: int
Server URL
-
Тип: URL сервера берётся из оставшейся части endpoint. Используйте platform для подключения к локальной JVM.
-
По умолчанию:
-
Тип: String
String To Compare
-
Значение атрибута для сравнения (строковый монитор или потребитель). По умолчанию потребитель уведомляет о совпадении, если настроены наблюдаемый атрибут и строка для сравнения.
-
По умолчанию:
-
Тип: String
Threshold High
-
Тип: Значение верхнего threshold для измерителя (только для монитора-измерителя).
-
По умолчанию:
-
Тип: Double
Threshold Low
-
Значение нижнего threshold для измерителя (только для монитора-измерителя).
-
По умолчанию:
-
Тип: Double
Component security properties
Password
-
Тип: Учётные данные для удалённого подключения.
-
По умолчанию:
-
Тип: String
User
-
Учётные данные для удалённого подключения.
-
По умолчанию:
-
Тип: String
Component advanced properties
Bridge Error Handler
-
Тип: Предоставляет возможность связать потребителя с маршрутизатором Error Handler Camel. Это позволяет обрабатывать исключения (если возможно), возникающие при получении входящих сообщений потребителем Camel, в виде сообщений, передаваемых в маршрутизатор Error Handler.
Важно: Это возможно только в том случае, если сторонний компонент позволяет Camel получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают исключения только внутренне, из-за чего использование bridgeErrorHandler становится невозможным. В некоторых случаях мы можем доработать компонент Camel, чтобы интегрировать его со сторонним компонентом и сделать такую возможность доступной в будущих выпусках. По умолчанию потребитель использует org.apache.camel.spi.ExceptionHandler для обработки исключений, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию: false
-
Тип: boolean
Exception Handler
-
Позволяет потребителю использовать собственный ExceptionHandler.
Обратите внимание, что если включена опция bridgeErrorHandler, то эта настройка не используется. По умолчанию потребитель обрабатывает исключения, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию:
-
Тип: ExceptionHandler
Exchange Pattern
-
Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).
Возможные значения:
-
InOnly
-
InOut
-
-
По умолчанию:
-
Тип: ExchangePattern
Executor Service
-
Тип: Использует пользовательский общий пул потоков для потребителей. По умолчанию каждый потребитель имеет собственный пул потоков для обработки и маршрутизации уведомлений.
-
По умолчанию:
-
Тип: ExecutorService
Handback
-
Значение, возвращаемое слушателю при получении уведомления. Это значение будет помещено в заголовок сообщения с ключом JMXConstants#JMX_HANDBACK.
-
По умолчанию:
-
Тип: Object
Notification Filter
-
Тип: Ссылка на бин, реализующий NotificationFilter.
-
По умолчанию:
-
Тип: NotificationFilter
Object Properties
-
Свойства для имени объекта. Эти значения будут использоваться, если параметр objectName не задан.
-
По умолчанию:
-
Тип: Map
Reconnect Delay
-
Тип: Количество секунд ожидания перед попыткой повторного установления начального соединения или повторного подключения потерянного соединения.
-
По умолчанию: 10
-
Тип: int
Reconnect On Connection Failure
-
Если значение true, потребитель попытается переподключиться к серверу JMX при любом сбое соединения. Потребитель будет пытаться восстановить соединение с JMX каждые 'x' секунд до тех пор, пока соединение не будет установлено, где 'x' -- это настроенная задержка повторного подключения (reconnectionDelay).
-
По умолчанию: false
-
Тип: boolean
Test Connection On Startup
-
Если значение true, потребитель выбросит исключение, если не сможет установить соединение с JMX при запуске. Если false, потребитель будет пытаться установить соединение с JMX каждые 'x' секунд до тех пор, пока соединение не будет установлено, где 'x' -- это настроенная задержка повторного подключения (reconnectionDelay).
-
По умолчанию: true
-
Тип: boolean