当前位置: 首页 > 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.lryc.cn/news/576741.html

相关文章:

  • ONLYOFFICE 协作空间 企业版使用秘籍-8.使用虚拟数据房间,处理机密文档更安全
  • 生物实验室安全、化学品安全
  • MATLAB变音系统设计:声音特征变换(男声、女声、童声互转)
  • fvcom 网格文件grd制作
  • 日线周线MACD指标使用图文教程,通达信指标
  • 什么是零知识证明(Zero-Knowledge Proof, ZKP)
  • BF的数据结构题单-省选根号数据结构 - 题单 - 洛谷 计算机科学教育新生态
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序源码的用户价值对接机制研究
  • IDE/IoT/实践小熊派LiteOS工程配置、编译、烧录、调试(基于 bearpi-iot_std_liteos 源码)
  • 阿里云-接入SLS日志
  • 抗辐照芯片技术在商业卫星领域的应用与突破
  • C++ 第四阶段 STL 容器 - 第一讲:详解 std::vector
  • llama.cpp学习笔记:后端加载
  • M1芯片最终oracle成功版本拉取方法及配置
  • 【Linux庖丁解牛】— 文件系统!
  • JDK21 基于 Spring-AI 集成大模型实现聊天机器人
  • 【智能协同云图库】智能协同云图库第三弹:基于腾讯云 COS 对象存储—开发图片模块
  • Leetcode 3598. Longest Common Prefix Between Adjacent Strings After Removals
  • [database] Closure computation | e-r diagram | SQL
  • 【LeetCode 热题 100】560. 和为 K 的子数组——(解法二)前缀和+哈希表
  • swift-22-面向协议编程、响应式编程
  • SpringSecurity6-oauth2-三方gitee授权-授权码模式
  • 加密货币:USDC和比特币有什么区别?
  • web3区块链-ETH以太坊
  • 代理模式 - Flutter中的智能替身,掌控对象访问的每一道关卡!
  • aws(学习笔记第四十八课) appsync-graphql-dynamodb
  • Docker错误问题解决方法
  • Keil MDK 的 STM32 开发问题:重定向 printf 函数效果不生效(Keil MDK 中标准库未正确链接)
  • 基于springboot+vue的数字科技风险报告管理系统
  • 现代 JavaScript (ES6+) 入门到实战(一):告别 var!拥抱 let 与 const,彻底搞懂作用域