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");
Copy to Clipboard Toggle word wrap

请记住,从 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");
Copy to Clipboard Toggle word wrap

从 Camel 2.17 开始,若要自动配置 AMQP 组件,您还可以向注册表添加 org.apache.camel.component.amqp.AMQPConnectionDetails 实例。例如,对于 Spring Boot,您必须定义 bean:

AMQP 连接详情自动配置

@Bean
AMQPConnectionDetails amqpConnection() {
  return new AMQPConnectionDetails("amqp://localhost:5672");
}
 
@Bean
AMQPConnectionDetails securedAmqpConnection() {
  return new AMQPConnectionDetails("amqp://localhost:5672", "username", "password");
}
Copy to Clipboard Toggle word wrap

同样,在使用 Camel-CDI 时也可以使用 CDI producer 方法

AMQP 连接详情用于 CDI 的自动配置

@Produces
AMQPConnectionDetails amqpConnection() {
  return new AMQPConnectionDetails("amqp://localhost:5672");
}
Copy to Clipboard Toggle word wrap

您还可以依赖 Camel 属性来读取 AMQP 连接详情。factory 方法 AMQPConnectionDetails.discoverAMQP () 尝试在类似 Kubernetes 的约定中读取 Camel 属性,具体如以下代码片段所示:

AMQP 连接详情自动配置

export AMQP_SERVICE_HOST = "mybroker.com"
export AMQP_SERVICE_PORT = "6666"
export AMQP_SERVICE_USERNAME = "username"
export AMQP_SERVICE_PASSWORD = "password"
 
...
 
@Bean
AMQPConnectionDetails amqpConnection() {
  return AMQPConnectionDetails.discoverAMQP();
}
Copy to Clipboard Toggle word wrap

启用 AMQP 特定选项

例如,如果需要启用 amqp.traceFrames,您可以通过将 选项附加到 URI 来执行此操作,如下例所示:

AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672?amqp.traceFrames=true");
Copy to Clipboard Toggle word wrap

要参考,请查看 QPID JMS 客户端配置

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat