rabbitmq springboot 有哪些配置参数
在Spring Boot中集成RabbitMQ时,可以通过配置文件(如application.properties
或application.yml
)设置多种参数,以满足不同的业务需求。以下是常见的配置参数及其说明:
1. 基础连接配置
-
spring.rabbitmq.host
RabbitMQ服务器的地址(默认:localhost
)。 -
spring.rabbitmq.port
RabbitMQ服务器的端口(默认:5672
)。 -
spring.rabbitmq.username
连接RabbitMQ的用户名(默认:guest
)。 -
spring.rabbitmq.password
连接RabbitMQ的密码(默认:guest
)。 -
spring.rabbitmq.virtual-host
虚拟主机名称(默认:/
)。
2. 连接超时与心跳
-
spring.rabbitmq.connection-timeout
连接超时时间(毫秒,默认:0
,表示无限等待)。 -
spring.rabbitmq.requested-heartbeat
心跳间隔(秒,默认:60
),用于检测连接是否存活。
3. 消息确认与发布确认
-
spring.rabbitmq.publisher-confirms
是否启用发布确认(true
/false
,默认:false
)。启用后,生产者可以确认消息是否到达Broker。 -
spring.rabbitmq.publisher-returns
是否启用发布返回(true
/false
,默认:false
)。启用后,未路由的消息会返回给生产者。 -
spring.rabbitmq.template.mandatory
是否强制返回未路由的消息(需配合publisher-returns
使用,默认:false
)。
4. 消费者配置
-
spring.rabbitmq.listener.simple.acknowledge-mode
消息确认模式:AUTO
:自动确认(默认)。MANUAL
:手动确认。NONE
:不确认(可能导致消息丢失)。
-
spring.rabbitmq.listener.simple.concurrency
最小消费者数量(默认:1
)。 -
spring.rabbitmq.listener.simple.max-concurrency
最大消费者数量(默认:1
)。 -
spring.rabbitmq.listener.simple.prefetch
预取消息数量(默认:1
)。控制消费者一次从Broker获取的消息数量,避免单消费者过载。 -
spring.rabbitmq.listener.simple.retry.enabled
是否启用重试机制(true
/false
,默认:false
)。 -
spring.rabbitmq.listener.simple.retry.max-attempts
最大重试次数(默认:3
)。 -
spring.rabbitmq.listener.simple.retry.initial-interval
重试间隔(毫秒,默认:1000
)。
5. 高级配置
-
spring.rabbitmq.cache.channel.size
连接通道缓存大小(默认:25
)。 -
spring.rabbitmq.ssl.enabled
是否启用SSL/TLS加密(true
/false
,默认:false
)。 -
spring.rabbitmq.ssl.key-store
SSL密钥库路径(需启用SSL)。 -
spring.rabbitmq.ssl.key-store-password
SSL密钥库密码。 -
spring.rabbitmq.addresses
集群节点地址(逗号分隔,如host1:5672,host2:5672
),用于高可用场景。
6. 示例配置(YAML格式)
spring:rabbitmq:host: localhostport: 5672username: guestpassword: guestvirtual-host: /connection-timeout: 5000requested-heartbeat: 30publisher-confirms: truepublisher-returns: truelistener:simple:acknowledge-mode: MANUALconcurrency: 5max-concurrency: 10prefetch: 10retry:enabled: truemax-attempts: 5initial-interval: 2000
关键参数说明
-
prefetch
:
控制消费者并发处理能力。值越大,吞吐量越高,但可能导致消息分配不均。 -
publisher-confirms
与publisher-returns
:
用于生产者确保消息可靠到达Broker,适合高可靠性场景。 - 重试机制:
消费者处理失败时自动重试,避免消息丢失。
注意事项
- 生产环境建议启用SSL加密(
spring.rabbitmq.ssl.enabled=true
)。 - 高并发场景需合理配置
prefetch
和concurrency
,避免资源耗尽。 - 集群环境下使用
addresses
配置多个节点地址,实现负载均衡和故障转移。
通过以上配置,可以灵活调整RabbitMQ在Spring Boot中的行为,满足不同业务需求。