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