RabbitMQ(007 消息可靠性part2)

动力节点RabbitMQ教程|12小时学会rabbitmq消息中间件

总时长 12:20:00 共65P

此文章包含第45p-第p57的内容


备用交换机

交换机参数

只有一个 alternate exchange
在这里插入图片描述

队列参数 有很多 如下
在这里插入图片描述

alternate exchange

路由写错了的话, 没有进入到队列的消息
第一种解决方法 记录到日志
第二种解决方法 没有进入到队列的消息 都进入到默认交换机

在这里插入图片描述

备用交换机用扇形交换机 好处:不用设置路由就可以进入队列
在这里插入图片描述

备用交换机的消费者可以绑定 手机 短信 钉钉等 进行提醒 程序出问题了才会进入
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

设置了备用交换机 会有 AE
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

队列的详细属性

队列类型一般都选经典,其他两种是扩展类型 一般不使用
在这里插入图片描述

名称,是否持久化,是否是排他队列,是否自动删除
在这里插入图片描述

在这里插入图片描述
两个信道 一个发送 一个接收 因为在一个程序里所以端口相同
在这里插入图片描述

详细参数

在这里插入图片描述

溢出 后的处理情况

在这里插入图片描述

溢出行为默认是删除头部、
这里改成拒绝发布

在这里插入图片描述在这里插入图片描述

最大长度5
在这里插入图片描述

x-overflow 拒绝发布
在这里插入图片描述

单一消费者

如果队列存在 则改了参数之后再创建不可能创建成功 需要删除后再进行创建
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

启动单一消费者前

在这里插入图片描述

启动单一消费者后
在这里插入图片描述

消息队列容量

在这里插入图片描述

优先级队列 (了解即可 一般没有这样的需求 除非会员插队这些 基本用不上)

数值越大 可以插队
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

根据优先级进行插队 不能设置消费者 否则消费完了没必要插队了
在这里插入图片描述

其他属性 熟悉即可

懒队列
在这里插入图片描述
持久化是 内存里有 我再存磁盘一份
这个懒队列是 只在磁盘里存 内存不存信息 会很慢 不推荐

总结

在这里插入图片描述

1那里 设置confirm
2那里 设置return 或设置备用交换机
3那里设置三个持久化来进行可靠性
4 消费者的自动确认改成手动确认
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

persistent 持久化
在这里插入图片描述

集群可以防止单点故障
在这里插入图片描述

在这里插入图片描述

总结 confirm

在这里插入图片描述

查看rabbit命令
在这里插入图片描述

在环境变量里 所以都可以用
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
启用的插件
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

使用//TODO 可以在下面直接找到 计划要写的地方
在这里插入图片描述

在这里插入图片描述

总结return
  1. 开启发布者return模式
    在这里插入图片描述
    2.编写returnCallback,并引入进rabbitTemplate.setReturnsCallback
    在这里插入图片描述
  2. 写个错误的路由key进行验证
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

保持持久化

在这里插入图片描述

队列持久化

在这里插入图片描述

队列默认也是持久化的
在这里插入图片描述

交换机持久化

在这里插入图片描述

交换机的持久化默认就是true
在这里插入图片描述

消息持久化

设置 messageProperties的 deliveryMode 为 MessageDeliveryMode.PERSISTENT
在这里插入图片描述
在这里插入图片描述

也可以不设置 因为消息也是默认就是持久化的
在这里插入图片描述

集群 后期再讲

在这里插入图片描述

确保消息正确的投递到消费者

启用手动ack确认机制
在这里插入图片描述

在这里插入图片描述
未确认
在这里插入图片描述

Channel勿导错包
在这里插入图片描述

在这里插入图片描述
没有问题时 basic Ack 手动确认
在这里插入图片描述

有问题时 basic Nack 并且重新入队
在这里插入图片描述

在这里插入图片描述

这时 如果前方代码报错 如果重新入队后 会一直报错 死循环
在这里插入图片描述

幂等性

在这里插入图片描述

数据库四种操作 select update insert delete 只有 insert 是非幂等的
http四种方法 get(查询) post(插入) put(修改) delete(删除) 只有post是非幂等的
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查看redis
在这里插入图片描述
启动redis
在这里插入图片描述
在这里插入图片描述
默认使用0号数据库
在这里插入图片描述

@Data 创建get set 方法
@AllArgsConstructor创建所有参数的构造方法
@NoArgsConstructor创建没有参数的构造方法
@Builder 创建建造者模式
在这里插入图片描述

在这里插入图片描述

序列化 把对象转成字节串或字节数组 反序列化 转换回去

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
最好转成json字符串进行发送 因为 发送消息和接收消息的可能是两个程序 如果发送对象 需要对方有一个一模一样的对象进行接收 而且连包名都一样
接收消息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

引入redis 并且刷新
在这里插入图片描述

配置
在这里插入图片描述
使用springboot的自动装配
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
只插入一次
在这里插入图片描述

在这里插入图片描述


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值