连接参数配置
RabbitMQ Java Client 通过 ConnectionFactory 统一管理连接参数,下面梳理核心配置项与使用规范。
Maven 依赖
XML
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.20.0</version>
</dependency>
ConnectionFactory 核心参数
基础配置项
Java
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class ConnectionConfigExample {
public static void main(String[] args) throws IOException, TimeoutException {
ConnectionFactory factory = new ConnectionFactory();
// 服务器地址
factory.setHost("localhost");
factory.setPort(5672);
// 认证信息
factory.setUsername("guest");
factory.setPassword("guest");
// 虚拟主机
factory.setVirtualHost("/");
// 连接超时(毫秒)
factory.setConnectionTimeout(10000);
factory.setHandshakeTimeout(10000);
// 心跳间隔(秒),0 表示禁用
factory.setRequestedHeartbeat(30);
// 创建连接
Connection connection = factory.newConnection();
System.out.println("连接建立成功");
connection.close();
}
}
URI 方式配置
Java
ConnectionFactory factory = new ConnectionFactory();
factory.setUri("amqp://guest:guest@localhost:5672/%2F");
// %2F 是 / 的 URL 编码,表示默认虚拟主机
Connection connection = factory.newConnection();
connection.close();
参数说明
| 参数 | 默认值 | 说明 |
|---|---|---|
| host | localhost | RabbitMQ 服务器地址 |
| port | 5672 | AMQP 协议端口 |
| username | guest | 认证用户名 |
| password | guest | 认证密码 |
| virtualHost | / | 虚拟主机,用于资源隔离 |
| connectionTimeout | 10000 | 连接超时时间(ms) |
| requestedHeartbeat | 60 | 心跳检测间隔(秒) |
注意事项
guest 用户默认只能通过 localhost 连接远程访问时需创建独立账号。
虚拟主机名称中的
/在 URI 中必须进行 URL 编码为%2F。
多节点集群可使用
factory.setAddresses("host1:5672,host2:5672")配置多个地址。
Connection 和 Channel 使用完毕后必须调用
close()释放资源,建议使用 try-with-resources 或 finally 块确保资源正确关闭。
要点总结
- ConnectionFactory 是连接配置的入口类,集中管理所有连接参数。
- 支持参数单独设置和 URI 统一设置两种方式。
- guest 用户有 localhost 访问限制,远程访问需创建新用户。
- 合理设置超时和心跳参数,避免连接异常断开。
- 资源使用后必须显式关闭,防止连接泄漏。
📝 发现内容有误?点击此处直接编辑