RabbitProperties
spring RabbitMQ 配置类说明
RabbitProperties.java
/**
* RabbitMQ 配置属性
*/
@ConfigurationProperties(prefix = "spring.rabbitmq")
public class RabbitProperties {
// RabbitMQ 地址列表
private List<String> addresses = new ArrayList<>(Collections.singletonList("localhost"));
// 连接 RabbitMQ 的用户名
private String username;
// 连接 RabbitMQ 的密码
private String password;
// 连接 RabbitMQ 的虚拟主机
private String virtualHost = "/";
// 请求心跳检测间隔
private Integer requestedHeartbeat;
// 连接超时时间
private Integer connectionTimeout;
// SSL 相关配置
private Ssl ssl = new Ssl();
// 配置 AMQP 协议的参数
private final Amqp amqp = new Amqp();
// 配置 RabbitMQ 连接池相关参数
private final Pool pool = new Pool();
// 配置 RabbitMQ 消息的默认 Exchange
private String exchange;
// 配置 RabbitMQ 消息的默认 Routing Key
private String routingKey;
// 配置 RabbitMQ 消息的默认队列名称
private String defaultRequeueRejected;
// 配置 RabbitMQ 消息的默认处理方式
private Boolean publisherReturns;
// 配置 RabbitMQ 消息的默认处理方式
private Boolean publisherConfirmType;
// 配置 RabbitMQ 消息的默认处理方式
private Template template = new Template();
// 配置 RabbitMQ Channel 相关参数
private final Channel channel = new Channel();
// 获取地址列表
public List<String> getAddresses() {
return this.addresses;
}
// 设置地址列表
public void setAddresses(List<String> addresses) {
this.addresses = addresses;
}
// 获取用户名
public String getUsername() {
return this.username;
}
// 设置用户名
public void setUsername(String username) {
this.username = username;
}
// 获取密码
public String getPassword() {
return this.password;
}
// 设置密码
public void setPassword(String password) {
this.password = password;
}
// 获取虚拟主机名称
public String getVirtualHost() {
return this.virtualHost;
}
// 设置虚拟主机名称
public void setVirtualHost(String virtualHost) {
this.virtualHost = virtualHost;
}
// 获取请求心跳检测间隔
public Integer getRequestedHeartbeat() {
return this.requestedHeartbeat;
}
// 设置请求心跳检测间隔
public void setRequestedHeartbeat(Integer requestedHeartbeat) {
this.requestedHeartbeat = requestedHeartbeat;
}
// 获取连接超时时间
public Integer getConnectionTimeout() {
return this.connectionTimeout;
}
// 设置连接超时时间
public void setConnectionTimeout(Integer connectionTimeout) {
this.connectionTimeout = connectionTimeout;
}
// 获取 SSL 相关配置
public Ssl getSsl() {
return this.ssl;
}
// 设置 SSL 相关配置
public void setSsl(Ssl ssl) {
this.ssl = ssl;
}
// 获取 AMQP 相关配置
public Amqp getAmqp() {
配置文件
RabbitProperties
类是 Spring Boot 中用于配置 RabbitMQ 连接和消息传递的属性类。该类包含了 RabbitMQ 相关的所有属性,并提供了默认值和类型转换等功能。
下面是 RabbitProperties
类的主要属性及其中文解释:
addresses
:RabbitMQ 服务器地址列表。host
:RabbitMQ 服务器主机名,默认为localhost
。port
:RabbitMQ 服务器端口号,默认为5672
。username
:RabbitMQ 服务器用户名。password
:RabbitMQ 服务器密码。virtual-host
:RabbitMQ 虚拟主机名称,默认为/
。ssl.enabled
:是否启用 SSL 安全连接。ssl.key-store
:SSL 密钥库文件路径。ssl.key-store-password
:SSL 密钥库密码。ssl.key-store-type
:SSL 密钥库类型,默认为PKCS12
。ssl.trust-store
:SSL 信任库文件路径。ssl.trust-store-password
:SSL 信任库密码。ssl.trust-store-type
:SSL 信任库类型,默认为PKCS12
。ssl.algorithm
:SSL 加密算法,默认为TLSv1.2
。connection-timeout
:连接 RabbitMQ 的超时时间(毫秒),默认为60000
。requested-heartbeat
:客户端希望 RabbitMQ 服务器发送心跳消息的时间间隔(秒),默认为60
。cache.channel.size
:缓存的 Channel 数量,默认为25
。cache.channel.checkout-timeout
:从缓存中检出 Channel 的超时时间(毫秒),默认为0
。cache.connection.mode
:缓存连接模式,支持CHANNEL
和CONNECTION
,默认为CHANNEL
。cache.connection.size
:缓存连接数量,默认为1
。cache.connection.checkout-timeout
:从缓存中检出 Connection 的超时时间(毫秒),默认为0
。cache.channel.checkout-timeout
:从缓存中检出 Channel 的超时时间(毫秒),默认为0
。publisher-confirms
:是否启用 Publisher Confirms 模式,默认为false
。publisher-returns
:是否启用 Publisher Returns 模式,默认为false
。template.retry.enabled
:是否启用 RabbitMQ 消息重试机制,默认为false
。template.retry.max-attempts
:最大重试次数,默认为3
。template.retry.initial-interval
:第一次重试的间隔时间(毫秒),默认为1000
。template.retry.multiplier
:重试间隔时间的倍增因子,默认为1.0
。template.retry.max-interval
:最大重试间隔时间(毫秒),默认为10000
。listener.direct.acknowledge-mode
:Direct Message Listener Container 的 Acknowledge Mode,支持AUTO
、MANUAL
和NONE
,默认为AUTO
。- `listener
listener.direct.prefetch
:Direct Message Listener Container 的预取值,默认为250
。listener.simple.acknowledge-mode
:Simple Message Listener Container 的 Acknowledge Mode,支持AUTO
、MANUAL
和NONE
,默认为AUTO
。listener.simple.concurrency
:Simple Message Listener Container 的并发消费者数量,默认为1
。listener.simple.max-concurrency
:Simple Message Listener Container 的最大并发消费者数量。listener.simple.prefetch
:Simple Message Listener Container 的预取值,默认为250
。listener.simple.default-requeue-rejected
:Simple Message Listener Container 在消费者拒绝消息时是否重新加入队列,默认为true
。listener.simple.retry.enabled
:是否启用 Simple Message Listener Container 的消息重试机制,默认为false
。listener.simple.retry.max-attempts
:Simple Message Listener Container 最大重试次数,默认为3
。listener.simple.retry.initial-interval
:Simple Message Listener Container 第一次重试的间隔时间(毫秒),默认为1000
。listener.simple.retry.multiplier
:Simple Message Listener Container 重试间隔时间的倍增因子,默认为1.0
。listener.simple.retry.max-interval
:Simple Message Listener Container 最大重试间隔时间(毫秒),默认为10000
。listener.simple.missing-queues-fatal
:Simple Message Listener Container 在遇到不存在的队列时是否抛出异常,默认为true
。listener.simple.default-requeue-rejected
:Simple Message Listener Container 在消费者拒绝消息时是否重新加入队列,默认为true
。
以上就是 RabbitProperties
类的主要属性及中文解释。这些属性可以在 Spring Boot 应用程序的配置文件中配置,或者在代码中使用 RabbitTemplate
、RabbitListener
等类来动态设置。