RabbitMQ系列
文章平均质量分 72
海洋的渔夫
这个作者很懒,什么都没留下…
展开
-
17-RabbitMQ高级特性-日志与监控
17-RabbitMQ高级特性-日志与监控RabbitMQ日志RabbitMQ默认日志存放路径: /var/log/rabbitmq/rabbit@xxx.log日志包含了RabbitMQ的版本号、Erlang的版本号、RabbitMQ服务节点名称、cookie的hash值、RabbitMQ配置文件地址、内存限制、磁盘限制、默认账户guest的创建以及权限配置等等。我们登录服务器,查看一下日志如下...原创 2023-01-27 23:00:13 · 547 阅读 · 0 评论 -
18-RabbitMQ高级特性-消息追踪
18-RabbitMQ高级特性-消息追踪消息追踪在使用任何消息中间件的过程中,难免会出现某条消息异常丢失的情况。对于 RabbitMQ 而言,可能是因为生产者或消费者与RabbitMQ 断开了连接,而它们与 RabbitMQ 又采用了不同的确认机制;也有可能是因为交换器与队列之间不同的转发策略;甚至是交换器并没有与任何队列进行绑定,生产者又不感知或者没有采取相应的措施;另外 RabbitMQ 本身...原创 2023-01-27 23:00:13 · 214 阅读 · 0 评论 -
15-RabbitMQ高级特性-死信队列
15-RabbitMQ高级特性-死信队列死信队列死信队列,英文缩写:DLX 。Dead Letter Exchange(死信交换机),当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。消息成为死信的三种情况:队列消息长度到达限制;消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false;原队...原创 2023-01-27 23:00:13 · 410 阅读 · 0 评论 -
14-RabbitMQ高级特性-TTL
14-RabbitMQ高级特性-TTL前言在业务开发中有时候会有这样的需求,例如 12306 购买车票,我们必须在30分钟内进行付款,如果超过30分钟,则该订单将会被自动取消。要满足这个需求,可以采用 TTL 的这个特性功能。TTLTTL 全称 Time To Live(存活时间/过期时间)。当消息到达存活时间后,还没有被消费,会被自动清除。RabbitMQ可以对消息设置过期时间,也可以对整个队列...原创 2023-01-27 23:00:13 · 792 阅读 · 0 评论 -
19-RabbitMQ应用问题-消息补偿
19-RabbitMQ应用问题-消息补偿RabbitMQ应用问题消息可靠性保障消息补偿机制消息幂等性保障乐观锁解决方案消息可靠性保障需求:100%确保消息发送成功消息可靠性保障--消息补偿Producer1.业务数据入库DB,保证消息持久化2.发送消息至消费队列Q1(中间有交换机就不写了)3.延迟发送消息队列Q3(用于后续校验 2.发送的消息)Consumer4.监听队列Q1:如果消费成功,则将消...原创 2023-01-27 23:00:13 · 531 阅读 · 0 评论 -
20-RabbitMQ应用问题-消息幂等性保障
20-RabbitMQ应用问题-消息幂等性保障RabbitMQ应用问题消息可靠性保障消息补偿机制消息幂等性保障乐观锁解决方案消息幂等性保障幂等性指一次和多次请求某一个资源,对于资源本身应该具有同样的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。在MQ中指,消费多条相同的消息,得到与消费该消息一次相同的结果。消息幂等性保障--乐观锁机制消息发送还是之前的消息补偿流程图,...原创 2023-01-27 23:00:13 · 392 阅读 · 0 评论 -
16-RabbitMQ高级特性-延迟队列
16-RabbitMQ高级特性-延迟队列延迟队列延迟队列,即消息进入队列后不会立即被消费,只有到达指定时间后,才会被消费。需求:下单后,30分钟未支付,取消订单,回滚库存。新用户注册成功7天后,发送短信问候。实现方式:对于上面两种需求,一般有两种实现方式:定时器延迟队列定时器:设置一个轮询时间,间隔一段时间对数据库进行扫描对比,当符合定时的数据则进行处理;缺点:不优雅,因为不管设置多少间隔时间,都...原创 2023-01-27 23:00:13 · 543 阅读 · 1 评论 -
9-Spring 整合 RabbitMQ
9-Spring 整合 RabbitMQ1. 搭建生产者工程1.1 创建工程创建一个空的 maven 工程 spring-rabbitmq-producer:1.2. 添加依赖修改pom.xml文件内容为如下:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0...原创 2022-10-05 18:14:31 · 391 阅读 · 0 评论 -
10-Spring Boot整合RabbitMQ
10-Spring Boot整合RabbitMQ简介在Spring项目中,可以使用Spring-Rabbit去操作RabbitMQhttps://github.com/spring-projects/spring-amqp尤其是在spring boot项目中只需要引入对应的amqp启动器依赖即可,方便的使用RabbitTemplate发送消息,使用注解接收消息。一般在开发过程中:生产者工程:ap...原创 2022-10-05 18:14:31 · 605 阅读 · 0 评论 -
8-RabbitMQ工作模式总结
8-RabbitMQ工作模式总结模式总结RabbitMQ工作模式:1、简单模式 HelloWorld一个生产者、一个消费者,不需要设置交换机(使用默认的交换机)2、工作队列模式 Work Queue一个生产者、多个消费者(竞争关系),不需要设置交换机(使用默认的交换机)3、发布订阅模式 Publish/subscribe需要设置类型为fanout的交换机,并且交换机和队列进行绑定,当发送消息到交换...原创 2022-10-05 18:14:31 · 431 阅读 · 0 评论 -
11-RabbitMQ高级特性-消息可靠性投递
11-RabbitMQ高级特性-消息可靠性投递消息的可靠投递在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。confirm 确认模式return 退回模式rabbitmq 整个消息投递的路径为:producer--->rabbitmq broker--->exchange---&...原创 2022-10-05 18:14:31 · 467 阅读 · 0 评论 -
13-RabbitMQ高级特性-消费端限流
13-RabbitMQ高级特性-消费端限流消费端限流当用户的请求突然增多,MQ可以配置消费端限流,让消息按照限制的数量进行消费,达到限流的效果。下面我们来代码案例演示。案例我们接着在前面篇章的工程来进行代码演示即可。1.配置 消费端限流首先需要确保ack机制为手动确认 acknowledge="manual"配置消费端每次消费的数量 prefetch="1"<!--定义监听器与队列的绑定...原创 2022-10-05 18:14:31 · 1126 阅读 · 0 评论 -
12-RabbitMQ高级特性-Consumer ACK
12-RabbitMQ高级特性-Consumer ACKConsumer Ackack指Acknowledge,确认。 表示消费端收到消息后的确认方式。有三种确认方式:自动确认:acknowledge="none"手动确认:acknowledge="manual"根据异常情况确认:acknowledge="auto",(这种方式使用麻烦,不作讲解)“其中自动确认是指,当消息一旦被Consumer接...原创 2022-10-05 18:14:31 · 1235 阅读 · 0 评论 -
7-RabbitMQ工作模式-Topics通配符模式
7-RabbitMQ工作模式-Topics通配符模式Topics通配符模式1. 模式说明Topic类型与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符!Routingkey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如:item.inse......原创 2022-08-08 22:45:42 · 542 阅读 · 0 评论 -
6-RabbitMQ工作模式-Routing路由模式
6-RabbitMQ工作模式-Routing路由模式Routing路由模式1. 模式说明路由模式特点:队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key)消息的发送方在 向 Exchange发送消息时,也必须指定消息的 RoutingKey。Exchange不再把消息交给每一个绑定的队列,而是根据消息的Routing Key进行判断,只有......原创 2022-08-08 22:45:42 · 202 阅读 · 0 评论 -
3-RabbitMQ入门-生产者-消费者
3-RabbitMQ入门-生产者-消费者需求:使用简单模式完成消息传递官网的工作模式介绍那么下面呢,我们可以参考一下步骤进行案例演示:步骤:创建工程(生产者、消费者)分别添加依赖编写生产者发送消息编写消费者接收消息搭建示例工程1.创建工程创建两个空的maven工程:生产者 rabbitmq-producer消费者 rabbitmq-consumer2. 添加依赖两个工程的.........原创 2022-08-08 22:45:42 · 1404 阅读 · 0 评论 -
2-Centos7下安装部署RabbitMQ
2-Centos7下安装部署RabbitMQ前言RabbitMQ是一个开源的强大的企业消息系统,支持主流的操作系统,支持多种开发语言。我们项目中使用RabbitMQ作为消息队列,解耦业务,构建高可靠的消息队列系统。RabbitMQ可以用在订单系统、日志系统、数据收集等常见场景中。本文我们介绍如何在CentOS上安装当前最新版的RabbitMQ:v3.8.1,以及如何使用D.........原创 2022-08-08 22:45:42 · 1135 阅读 · 0 评论 -
1-消息中间件概述
1-消息中间件概述1.1. 什么是消息中间件MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。1.1.1 为什么使用MQ在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。在分布式服务中,当A系统需要远程调用B系统的API,一般是 同步处理。通过增加.........原创 2022-08-02 00:07:25 · 163 阅读 · 0 评论