当前位置: 首页 > news >正文

rabbitmq springboot 有哪些配置参数

在Spring Boot中集成RabbitMQ时,可以通过配置文件(如application.propertiesapplication.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

关键参数说明

  1. prefetch‌:
    控制消费者并发处理能力。值越大,吞吐量越高,但可能导致消息分配不均。
  2. publisher-confirmspublisher-returns‌:
    用于生产者确保消息可靠到达Broker,适合高可靠性场景。
  3. 重试机制‌:
    消费者处理失败时自动重试,避免消息丢失。

注意事项

  • 生产环境建议启用SSL加密(spring.rabbitmq.ssl.enabled=true)。
  • 高并发场景需合理配置prefetchconcurrency,避免资源耗尽。
  • 集群环境下使用addresses配置多个节点地址,实现负载均衡和故障转移。

通过以上配置,可以灵活调整RabbitMQ在Spring Boot中的行为,满足不同业务需求。

http://www.lqws.cn/news/567739.html

相关文章:

  • 打卡day57
  • WebRTC系列:(一)MacOS开发环境搭建(Vscode + Clangd)
  • Ubuntu开放mysql 3306端口
  • 现代 JavaScript (ES6+) 入门到实战(八):总结与展望 - 成为一名现代前端开发者
  • NLP随机插入
  • 复旦大学经济学院系统思考训练
  • MyBatis批量删除
  • [论文阅读]MISSRce
  • Elasticsearch 索引设计与性能优化实战指南
  • M1芯片最终oracle成功版本拉取方法及配置
  • 二叉树找到下一个中序遍历节点的思路
  • foreach、for in 和for of的区别
  • VMware报错问题解决记录
  • NAND Flash BCH和FTL
  • 聊聊横向移动中的实际技术点 ----- ResponderSMB
  • FastAPI+Sqlite+HTML的登录注册与文件上传系统:完整实现指南
  • 驱动开发系列58 - 揭开内核IRQ框架的神秘面纱
  • 对基尼指数作出的努力
  • jenkins启动报错,一直无法启动
  • 介绍Windows下的由Sysinternals开发的一些小工具
  • 实战篇----利用 LangChain 和 BERT 用于命名实体识别-----完整代码
  • OpenAI 系列大模型发展时间轴与主要特性
  • 用Flink打造实时数仓:生产环境中的“坑”与“解药”
  • Mac homebrew 安装教程
  • linux系统---Nginx反向代理与缓存功能
  • Springboot 集成 SpringState 状态机
  • 代码随想录打卡第一天
  • C语言中常见字符串处理函数
  • 量子算法入门——5.Qiskit库介绍与简单应用(2)
  • Ubuntu服务器(公网)- Ubuntu客户端(内网)的FRP内网穿透配置教程