RabbitMQ
2021-08-11 16:59:38 29 举报
AI智能生成
RabbitMQ是一个开源的消息代理和队列服务器,用于通过轻量级的消息传递协议在分布式系统中存储和转发消息。它基于AMQP(高级消息队列协议)标准,提供了可靠的消息传递、路由、持久化和安全性等功能。RabbitMQ具有高可用性、可扩展性和灵活性,可以支持多种编程语言和平台。它可以用于实现异步通信、任务队列、事件驱动架构等场景,广泛应用于企业应用、微服务架构和云原生应用中。
作者其他创作
大纲/内容
主页
http://localhost:15672/
guest/guest
视频教程
交换机类型
描述了交换机和队列直接的关系
direct
一对一
fanout
一对多
topic
routeingKey匹配模式
* 匹配1个
# 0个或多个
headers
通过消息中 x-match 匹配
x-delayed-message
延迟队列,要装插件
发布确认
消息发送到exchange确认
RabbitTemplate.ConfirmCallback
spring.rabbitmq.publisher-confirm-type=correlated
消息发送到queue失败的确认
RabbitTemplate.ReturnsCallback
spring.rabbitmq.publisher-returns=true
备份交换机
参数
alternate-exchange
设置了备份则不会回调RabbitTemplate.ReturnsCallback
死信队列 DLX
类似于备用队列,满足条件的转发到备用队列中
产生条件
消息被拒
Channel#basicReject()
队列达到最大长度
x-max-length
消息TTL过期
一般发送端定义 expiration
参数配置
x-dead-letter-exchange
x-dead-letter-routing-key
延迟队列
安装插件
查看containerId
运行中的:docker ps --no-trunc
所有的:docker ps -a
申明交换机类型为
x-delayed-message
优先级队列
申明队列优先级最大值
x-max-priority
0-255,一般建议10,太大影响性能
发送消息声明优先级
AMQP.BasicProperties().builder().priority(5).build();
惰性队列
消费者不可用时,将大量消息保存到硬盘,节省内存空间
x-queue-mode=lazy
集群
搭建集群
参照有道云笔记RabbitMQ
设置镜像队列
队列之间的数据没有自动同步,所以要设置
Haproxy+Keepalive
实现高可用负载均衡
Federation Exchange
Federation Queue
Shovel
0 条评论
下一页