5.5. 配置 AMQP 组件
从 Camel 2.16.1 开始,您还可以使用 AMQPComponent#amqp10Component (String connectionURI)
factory 方法返回 AMQP 1.0 组件,使用预先配置的主题前缀:
创建 AMQP 1.0 组件
AMQPComponent amqp = AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672");
AMQPComponent amqp = AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672");
请记住,从 Camel 2.17 开始, AMQPComponent#amqp10Component (String connectionURI)
工厂方法的代表 AMQPComponent#amqpComponent (String connectionURI)
已被弃用:
创建 AMQP 1.0 组件
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672"); AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672");
AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");
从 Camel 2.17 开始,若要自动配置 AMQP 组件,您还可以向注册表添加 org.apache.camel.component.amqp.AMQPConnectionDetails
实例。例如,对于 Spring Boot,您必须定义 bean:
AMQP 连接详情自动配置
同样,在使用 Camel-CDI 时也可以使用 CDI producer 方法
AMQP 连接详情用于 CDI 的自动配置
@Produces AMQPConnectionDetails amqpConnection() { return new AMQPConnectionDetails("amqp://localhost:5672"); }
@Produces
AMQPConnectionDetails amqpConnection() {
return new AMQPConnectionDetails("amqp://localhost:5672");
}
您还可以依赖 Camel 属性来读取 AMQP 连接详情。factory 方法 AMQPConnectionDetails.discoverAMQP ()
尝试在类似 Kubernetes 的约定中读取 Camel 属性,具体如以下代码片段所示:
AMQP 连接详情自动配置
启用 AMQP 特定选项
例如,如果需要启用 amqp.traceFrames
,您可以通过将 选项附加到 URI 来执行此操作,如下例所示:
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672?amqp.traceFrames=true");
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672?amqp.traceFrames=true");
要参考,请查看 QPID JMS 客户端配置