随笔分类 - RabbitMQ
摘要:1、启动容器 docker run --name=rabbitmq \ -e RABBITMQ_DEFAULT_VHOST=/dev \ -e RABBITMQ_DEFAULT_USER=rabbitmq \ -e RABBITMQ_DEFAULT_PASS=kun_rabbitmq \ -p 56
阅读全文
摘要:死信队列 概述 消息队列中的数据,如果迟迟没有消费者来处理,就会一直占用消息队列的空间。 比如抢车票的场景,用户下单高铁票之后,会进行抢座,然后再进行付款,但是如果用户下单之后并没有及时的付款,这张票不可能一直让这个用户占用着,因为这样别人就买不到这张票了,所以会在一段时间后超时,让这张票可以继续被
阅读全文
摘要:头部模式是根据头部信息来决定的,在发送的消息中是可以携带一些头部信息的(类似于HTTP),可以根据这些头部信息来决定路由到哪一个消息队列中。 定义配置类。 import org.springframework.amqp.core.Binding; import org.springframework
阅读全文
摘要:主题模式 主题模式结构图: 主题模式实际上就是一种模糊匹配的模式,可以将routingKey以模糊匹配的方式去进行转发。 可以使用*或#来表示: *:任意的一个单词。 #:0个或多个单词。 定义配置类。 import org.springframework.amqp.core.Binding; im
阅读全文
摘要:路由模式 路由模式结构图: 定义配置类。 import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amq
阅读全文
摘要:发布订阅模式 发布订阅模式结构图: 比如信用卡还款日临近了,那么就会给手机、邮箱发送消息,提示需要去还款了,但是手机短信和邮件发送并不一定是同一个业务提供的,但是现在又希望能够都去执行,就可以用到发布订阅模式,简而言之就是,发布一次,消费多个。 实现这种模式需要用到另一种类型的交换机,叫做**fan
阅读全文
摘要:工作队列模式结构图: 这种模式非常适合多个工人等待任务到来的场景。任务有多个,一个一个丢进消息队列,工人也有很多个,就可以将这些任务分配个各个工人,让他们各自负责一些任务,并且做的快的工人还可以多完成一些(能者多劳)。 要实现这种模式,只需要创建多个监听器即可。 先监听再发消息 这里先介绍先监听再发
阅读全文
摘要:Spring Boot集成RabbitMQ是现在主流的操作RabbitMQ的方式。 官方文档:https://docs.spring.io/spring-amqp/docs/current/reference/html/ 引入依赖。 <dependency> <groupId>org.springf
阅读全文
摘要:使用Java原生的方式使用RabbitMQ现在已经较少,但这是基础,还是有必要了解的。 引入依赖。 <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.16.0</v
阅读全文
摘要:这里先演示最简单的模型:直连模式。其结构图为: 一个生产者 -> 消息队列 -> 一个消费者 生产者只需要将数据丢进消息队列,而消费者只需要将数据从消息队列中取出,这样就实现了生产者和消费者的消息交互。 创建一个新的实验环境,即新建一个Virtual Host。 添加新的虚拟主机之后,我们可以看到,
阅读全文
摘要:# 安装 推荐使用Docker进行安装。 1. 执行如下命令。 ```bash docker run -d --restart always --name rabbitmq \ -e RABBITMQ_DEFAULT_USER=admin \ -e RABBITMQ_DEFAULT_PASS=adm
阅读全文
摘要:什么是消息队列 进行大量的远程调用时,传统的Http方式容易造成阻塞,所以引入了消息队列的概念,即让消息排队,按照队列进行消费。 它能够将发送方发送的信息放入队列中,当新的消息入队时,会通知接收方进行处理,一般消息发送方称为生产者,接收方称为消费者。 这样所有的请求,都可以丢到消息队列中,再由消费者
阅读全文