0%

RabbitMQ实践

安装

目前使用Docker进行安装,15672是网页端访问口,5672是程序端访问接口。

1
2
docker run -d --name my-rabbit -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=username -e RABBITMQ_DEFAULT_PASS=password rabbitmq:3.9-management

这个命令是后台运行,username以及password需要替换成你自己的。

注意事项

自动连接

Spring Boot启动后会自动连接RabbitMQ,这个在测试环境下可以设置不自动连接。

1
2
3
4
5
6
7
spring:
rabbitmq:
listener:
direct:
auto-startup: false # 测试环境下屏蔽掉RabbitMQ的自动重连
simple:
auto-startup: false # 测试环境下屏蔽掉RabbitMQ的自动重连

自动创建队列

如果监听了没有创建的队列会报异常错误,可以用注解的时候自动创建队列。

1
2
3
4
@RabbitListener(queuesToDeclare = @Queue("some-queue"))
public void someMethod() {
// TODO Some Things
}

队列不消费

这个问题,偶然间我一不小心把RabbitMQ重启,当然没有消息,过了一会发现队列中的新数据并没有消费。最后重启了消费者的服务后,就正常了。所以这个问题,如果不及时发现的话,最终会导致队列出错的,在大项目的时候还是需要注意。