RabbitMQ六种工作模式
RabbitMQ流程
生产者发送消息,包括Exchange交换机名称,和routingkey,然后匹配到正确的消息队列,消费者在从那里取出消息
默认的视图界面端口为15672,账号密码为guest
整合SpringBoot
- pom
1 | <!--amqp--> |
生产端
- properties
1 | spring.rabbitmq.addresses=localhost:5672 |
1 |
|
1 |
|
- 分别新建一个交换机和消息队列
- 绑定交换机和消息队列
Routing key中如果是xxx.*
则匹配的只有一层,比如xxx.123
,但如果是xxx.#
则匹配所有层,比如xxx.123.123
1 |
|
消费端
- properties
1 | ## rabbitmq 基本配置 |
- 和生产端一样需要一个pojo,如上的message类
- 消费端代码
1 | // 消费端代码 |
使用ack的目的
如果一个消费者挂掉却没有发送应答,RabbitMQ会理解为这个消息没有处理完全,然后交给另一个消费者去重新处理。这样,你就可以确认即使消费者偶尔挂掉也不会丢失任何消息了