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的自动装配

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

只插入一次

在这里插入图片描述

在这里插入图片描述


本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/5abc2410aa.html