
RabbitMQ
文章平均质量分 82
疯狂的帆
IT小白的求学之路
展开
-
SpringBoot2.x整合RabbitMQ(完整版)
本篇文章实现了 SpringBoot整合RabbitMQ,实现了 work模型,发布订阅模型,topic模型,confirm消息确认机制,return消息机制,TTL队列,死信队列等。整合方式有很多,比如使用 RabbitAdmin进行整合,本文介绍一个最简单的整合方式,只需要在 RabbitmqConfig.java 配置文件中进行简单配置,便可以方便的使用。相信你会喜欢这种方式的原创 2020-03-18 00:26:01 · 42764 阅读 · 27 评论 -
RabbitTemplate中convertSendAndReceive方法与convertAndSend方法的区别
场景这里只展示核心的代码,完整的代码请参见 SpringBoot整合RabbitMQ(完整版)// 向发布订阅模式里面发送消息public void sendPublish() { for (int i = 0; i < 5; i++) { // rabbitTemplate.convertSendAndReceive("exchange_fanout", ""...原创 2020-03-17 21:16:31 · 81913 阅读 · 15 评论 -
面试必问:RabbitMQ如何保证消息队列的可靠性传输
场景原创 2020-03-16 00:22:24 · 2899 阅读 · 0 评论 -
RabbitMQ_TTL队列_死信队列
TTL队列(Time To Live)TTL队列:简单的说就是队列中的消息是有时间限制的,如果超时,那么这个消息将会被队列删除业务场景淘宝购物,提交订单之后,在一定的时间内(30分钟)、订单如果没有支付,那么订单就会自动关闭,如果想要购买商品,就需要重新下单。实现这个功能,就使用到了这个 TTL队列代码实现死信队列 ...原创 2020-03-15 00:55:45 · 862 阅读 · 0 评论 -
com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: method channel.close
今天测试RabbitMQ中 TTL队列时,出现一个错误,错误信息如下:Exception in thread “main” java.io.IOExceptionat com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:124)at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChann...原创 2020-03-14 22:15:16 · 2167 阅读 · 0 评论 -
RabbitMQ高级应用(三)消费端限流策略(basicQos)
高并发情况下,队列里面一瞬间就就积累了上万条数据,但是消费者无法同时处理这么多请求,这个时候当我们打开客户端,瞬间就有巨量的信息给推送过来、但是客户端是没有办法同时处理这么多数据的,结果就是消费者(客户端)挂掉了....这种场景下我们就需要对消费端进行限流关键代码:channel.basicQos();原创 2020-03-14 18:43:54 · 8227 阅读 · 8 评论 -
RabbitMQ高级应用(二)return消息机制—ReturnListener.handleReturn()
应用场景我们在发送消息的时候,指定的交换机不存在,或者指定的路由key不存在,这时候我们需要监听这种不可达的消息,使用 return机制 `Return Listener` 进行监听。return机制实现。ReturnListener.handleReturn()原创 2020-03-14 01:31:51 · 984 阅读 · 2 评论 -
RabbitMQ高级应用(一)消息的可靠性投递—消息确认机制(confirm模式)
什么是消息的可靠性传递?confirm消息确认机制详解。channel.basicNack()方法参数详解。原创 2020-03-14 00:24:11 · 1290 阅读 · 0 评论 -
RabbitMQ从零开始学(六)通信模型之topic模型—通信模型总结
topic模型说明:topic模式相当于是对 路由模式的一个升级,topic模式主要就是在匹配的规则上可以实现模糊匹配。通信模型总结原创 2020-03-13 00:04:40 · 730 阅读 · 0 评论 -
RabbitMQ从零开始学(五)通信模型之路由模型(direct)
路由模型(direct)路由模式相当于是分布订阅模式的升级版,多了一个 路由key来约束队列与交换机的绑定编写生产者// 生产者public class Producer { private static final String EXCHANGE_NAME = "exchange_direct_1"; // 定义路由的key,key值是可以随意定义的 priva...原创 2020-03-12 23:17:49 · 413 阅读 · 0 评论 -
RabbitMQ从零开始学(四)通信模型之发布订阅模型—channel.exchangeDeclare()—channel.queueBind()
发布订阅模型(Publish/Subscribe)简单的说就是队列里面的消息会被多个消费者同时接受到,消费者接收到的信息一致发布订阅模型适合于做模块之间的异步通信场景:可以使用这种模型,发送并记录日志信息 ------ 就会被log收集程序收集到,可直接写到指定的文件里面springcloud的config组件里面通知配置自动更新缓存同步也可以使用这一个高并发下实现下单逻辑编...原创 2020-03-12 22:45:14 · 3626 阅读 · 0 评论 -
RabbitMQ从零开始学(三)通信模型之Work型—channel.basicQos()
work模型称为工作队列或者竞争消费者模式,多个消费者消费的数据之和才是原来队列中的所有数据,适用于流量的消峰生产者的编写public class Producer { private static final String QUEUE_NAME = "queue_work_1"; public static void main(String[] args) throws ...原创 2020-03-12 21:24:50 · 3010 阅读 · 0 评论 -
RabbitMQ从零开始学(二)通信模型之HelloWorld型—channel方法参数详解
导包,编写工具类,编写生产者,编写消费者, 测试。channel参数详解channel.basicPublish()channel.queueDeclare()channel.basicAck()channel.basicConsume()含义:生产者将消息发送到队列,然后队列将这个消息发送给消费者代码实现原创 2020-03-12 01:31:42 · 828 阅读 · 0 评论 -
RabbitMQ从零开始学(一)MQ在开发中的作用—Linux下安装RabbitMQ
MQ是什么?MQ在开发中的作用,消息队列,消息中间件,RabbitMQ的安装原创 2020-03-11 23:17:28 · 385 阅读 · 0 评论