目录
前言
在讲交换机之前我们需要了解一些概念,在RabbitMQ工作流程有一项叫Exchange(交换机:消息的分发中心****),它的作用是将生产者发送的消息转发到具体的队列,队列再将消息以推送或者拉取方式给消费者进行消费。
**原:**在RabbitMQ中生产者发送的信息不会直接投递到队列中,而是先将消息投递到交换机中,在由交换机路由到一个或多个队列中。
流程:生产者 --(路由键)—> 交换机 --(绑定键)—> 队列 --(pull,push)—>消费者
这里就需要了解这两个东西:
- **路由键(RoutingKey)****:**每个消息都有一个称为路由键(routing key)的属性,它其实就是一个简单的字符串(或者可以说是一种规则的字符串)
- **绑定键(BindingKey)****:**就是指定将队列跟接收路由键的交换机进行绑定
生产者将信息发送给哪个Exchange是由RoutingKey决定的,而Exchange与哪个队列绑定是由BindingKey决定的。
Exchange(交换机)的类型与应用
- 交换机的属性
除交换机类型外,在声明交换机时还可以附带许多其他的属性,其中最重要的几个分别是:
- Type:交换机名称
- Durability:是否持久化。如果持久性,则RabbitMQ重启后,交换机还存在
- Auto-delete:当所有与之绑定的消息队列都完成了对此交换机的使用后,是否删掉它
- **Internal:**当前Exchange是否用于RabbitMQ内部使用,默认fasle
- Arguments:扩展参数
这里就直接开始操作,配置在一篇就已做了讲解,非常简单!接下来的代码也之上在原基础上做了添加。
项目结构:
所需依赖:
<!--amqp协议--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <dependency> <group