179.6.2. 编程您自己的托管服务

可从 Camel 2.1 开始

Camel 现在提供了在注册服务进行管理时使用您自己的 MBeans。例如,您可以开发自定义 Camel 组件,并让其为端点、消费者和生产者公开 MBeans。您要做的只是实施接口 org.apache.camel.spi.ManagementAware,并返回受管对象 Camel 应使用。

既然您认为 oh boys 之前,JMX API 真的很麻烦且很麻烦,然后是 yeah。没问题,但我们 Spring 也创建了一系列注解,供您用于在现有 Bean 上导出管理。这意味着,您通常会使用来自 ManagementAware 接口的 getManagedObject 并在 getManagedObject 中返回它。例如,请参阅 CustomEndpoint 上面的代码示例。

现在,在 Camel 2.1 中,您可以对 Camel 注册进行管理的所有对象执行此操作,这些对象非常广泛,但并非所有对象。

对于不实施此 ManagementAware 接口的服务,Camel 将回退到使用下表中定义的默认打包程序:

类型MBean 打包程序

CamelContext

ManagedCamelContext

组件

ManagedComponent

端点

ManagedEndpoint

消费者

ManagedConsumer

Producer

ManagedProducer

Route(路由)

ManagedRoute

处理器

ManagedProcessor

tracer

ManagedTracer

Service

ManagedService

除了用于特殊类型的扩展程序外,还有一些扩展器,例如:

类型MBean 打包程序

ScheduledPollConsumer

ManagedScheduledPollConsumer

BrowsableEndpoint

ManagedBrowseableEndpoint

Throttler

ManagedThrottler

Delayer

ManagedDelayer

SendProcessor

ManagedSendProcessor

未来,我们将为更多 EIP 模式添加额外的打包程序。