官方RabbitMQ配置html
如下总结的很到位,请细看算法
RabbitMQ(1)安装配置用户角色权限spring
RabbitMQ(3)SpringBoot+RabbitMQ基于注解和代码之HelloWorldapp
RabbitMQ(4)SpringBoot+RabbitMQ发送确认和消费手动确认机制less
RabbitMQ(5)SpringBoot+RabbitMQ用死信队列和插件形式实现延迟队列spring-boot
RabbitMQ(6)基于Java的RabbitMQ发送、消费消息fetch
一、基础配置插件
#默认localhost spring.rabbitmq.host #默认5672 spring.rabbitmq.port #用户名 spring.rabbitmq.username #密码 spring.rabbitmq.password #链接到代理时用的虚拟主机 spring.rabbitmq.virtual-host #链接到server的地址列表(以逗号分隔),先addresses后host spring.rabbitmq.addresses #请求心跳超时时间,0为不指定,若是不指定时间单位默认为妙 spring.rabbitmq.requested-heartbeat #是否启用【发布确认】,默认false spring.rabbitmq.publisher-confirms #是否启用【发布返回】,默认false spring.rabbitmq.publisher-returns #链接超时时间,单位毫秒,0表示永不超时 spring.rabbitmq.connection-timeout
二、SSL代理
spring.rabbitmq.ssl.enabled: 是否支持ssl,默认false spring.rabbitmq.ssl.key-store: 持有SSL certificate的key store的路径 spring.rabbitmq.ssl.key-store-password: 访问key store的密码 spring.rabbitmq.ssl.trust-store: 持有SSL certificates的Trust store spring.rabbitmq.ssl.trust-store-password: 访问trust store的密码 spring.rabbitmq.ssl.trust-store-type=JKS:Trust store 类型. spring.rabbitmq.ssl.algorithm: ssl使用的算法,默认由rabiitClient配置 spring.rabbitmq.ssl.validate-server-certificate=true:是否启用服务端证书验证 spring.rabbitmq.ssl.verify-hostname=true 是否启用主机验证
三、 缓存cache
#缓存中保持的channel数量 spring.rabbitmq.cache.channel.size #当缓存数量被设置时,从缓存中获取一个channel的超时时间,单位毫秒;若是为0,则老是建立一个新channel spring.rabbitmq.cache.channel.checkout-timeout #缓存的channel数,只有是CONNECTION模式时生效 spring.rabbitmq.cache.connection.size #链接工厂缓存模式:channel 和 connection= spring.rabbitmq.cache.connection.mode=channel
四、Listener
#容器类型.simple或direct spring.rabbitmq.listener.type=simple #是否启动时自动启动容器 spring.rabbitmq.listener.simple.auto-startup=true #表示消息确认方式,其有三种配置方式,分别是none、manual和auto;默认auto spring.rabbitmq.listener.simple.acknowledge-mode #最小的消费者数量 spring.rabbitmq.listener.simple.concurrency #最大的消费者数量 spring.rabbitmq.listener.simple.max-concurrency #一个消费者最多可处理的nack消息数量,若是有事务的话,必须大于等于transaction数量. spring.rabbitmq.listener.simple.prefetch #当ack模式为auto时,一个事务(ack间)处理的消息数量,最好是小于等于prefetch的数量. #若大于prefetch, 则prefetch将增长到这个值 spring.rabbitmq.listener.simple.transaction-size #决定被拒绝的消息是否从新入队;默认是true(与参数acknowledge-mode有关系) spring.rabbitmq.listener.simple.default-requeue-rejected #若容器声明的队列在代理上不可用,是否失败; 或者运行时一个多多个队列被删除,是否中止容器 spring.rabbitmq.listener.simple.missing-queues-fatal=true #发布空闲容器的时间间隔,单位毫秒 spring.rabbitmq.listener.simple.idle-event-interval #监听重试是否可用 spring.rabbitmq.listener.simple.retry.enabled=false #最大重试次数 spring.rabbitmq.listener.simple.retry.max-attempts=3 #最大重试时间间隔 spring.rabbitmq.listener.simple.retry.max-interval=10000ms #第一次和第二次尝试传递消息的时间间隔 spring.rabbitmq.listener.simple.retry.initial-interval=1000ms #应用于上一重试间隔的乘数 spring.rabbitmq.listener.simple.retry.multiplier=1 #重试时有状态or无状态 spring.rabbitmq.listener.simple.retry.stateless=true #ack模式 spring.rabbitmq.listener.direct.acknowledge-mode= #是否在启动时自动启动容器 spring.rabbitmq.listener.direct.auto-startup=true #每一个队列消费者数量. spring.rabbitmq.listener.direct.consumers-per-queue= #默认是否将拒绝传送的消息从新入队. spring.rabbitmq.listener.direct.default-requeue-rejected= #空闲容器事件发布时间间隔. spring.rabbitmq.listener.direct.idle-event-interval= #若容器声明的队列在代理上不可用,是否失败. spring.rabbitmq.listener.direct.missing-queues-fatal=false #每一个消费者可最大处理的nack消息数量. spring.rabbitmq.listener.direct.prefetch= #是否启用发布重试机制. spring.rabbitmq.listener.direct.retry.enabled=false # 发送消息的第一次和第二次尝试之间的持续时间 spring.rabbitmq.listener.direct.retry.initial-interval=1000ms # 发送消息的最大尝试次数. spring.rabbitmq.listener.direct.retry.max-attempts=3 # 尝试之间的最大持续时间 spring.rabbitmq.listener.direct.retry.max-interval=10000ms # 乘数应用于前一个重试间隔 spring.rabbitmq.listener.direct.retry.multiplier=1 # 重试是无状态的仍是有状态的 spring.rabbitmq.listener.direct.retry.stateless=true
五、Template
#启用强制信息;默认false spring.rabbitmq.template.mandatory #receive() 操做的超时时间 spring.rabbitmq.template.receive-timeout #sendAndReceive() 操做的超时时间 spring.rabbitmq.template.reply-timeout #发送重试是否可用 spring.rabbitmq.template.retry.enabled=false #最大重试次数 spring.rabbitmq.template.retry.max-attempts=3 #第一次和第二次尝试发布或传递消息之间的间隔 spring.rabbitmq.template.retry.initial-interva=1000msl #应用于上一重试间隔的乘数 spring.rabbitmq.template.retry.multiplier=1 #最大重试时间间隔 spring.rabbitmq.template.retry.max-interval=10000