rabbitMQ学习笔记

mq向交换机发送消息,交换机本身不存储消息,交换机负责路由和转发消息

mq数据隔离使用virtual host虚拟主机,账户权限控制。

广播模式:FanOutExchange将消息路由到每个绑定的队列

direct:根据routing key将消息路由到对应队列

topic:(1)routing key可以是多个单词的列表 ,并且以.分割

(2) 可以使用通配符 .#:代指0个或多个单词

*代指1个单词

基于注解生成 binding、队列 交换机 routing key

发送消息

消息转换器,替换提供的序列化给信息造成乱码

消息可靠性

发送者的可靠性

生产者重连

生产者确认

publisher confirm 和public return两种确认机制

路由失败 会返回异常原因 返回ACK ,告知投递成功
临时消息消息投递到了mq,b并且入队成功,返回ACK,并告知投递成功

持久化消息相比临时消息多了持久化一步

其他情况返回NACK,告知投递失败

return需要配置return callback 只能配置一个。

confirm callback 每次发消息指定

MQ的可靠性

默认情况下,MQ会将消息保存到内存中降低消息的延迟

一旦MQ宕机,内存中消息会丢失,当消费者故障或者处理过慢时,会导致消息积压,引发MQ阻塞

pageOut 临时消息阻塞会把一部分消息转移到磁盘,此时mq是阻塞的不能访问的

1.消息持久化 ,将消息设定为PERSITENT 持久化,消息直接进入磁盘,并同时利用内存进行处理消息,保证效率

内存空间有限

消费者的可靠性

配置文件配置 acknowledge mode 

一般用i第三种,配置好错误交换机和错误队列绑定

业务幂等性 同一个业务 ,执行一次或多次对业务状态的影响是一致的

结合业务做幂等

延迟消息

发送延时消息 expiration 属性配置延迟时间

发消息用RabbitMqTemplate .convertAndSend()

定义MessageProsser和延迟消息对象

延时消息

接收:

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值