快速使用:
1、首先从docker启动,注意版本号,端口映射15672和5672,挂载本地,不配置环境变量用户名密码情况下,默认为guest,若成功启动,在浏览器打开127.0.0.1:15672可以进入控制台
2、springboot项目导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
3、简单配置yml文件
spring:
rabbitmq:
#主机名
host: 127.0.0.1
#端口号
port: 5672
#虚拟机名称(用于数据隔离)
virtual-host: /noop
username: noop
password: 123456
4、简单发送消息使用Rabbittemplate类,接受消息创建一个类,方法上使用注解@RabbitListener
简单示例:(每0.1s发送一条到queue)
@Test
void MQtest() throws InterruptedException {
String queueName ="simple.queue";
for(int i = 1 ;i<=50;i++) {
String msg = "hello,amqp,message_" + i;
rabbitTemplate.convertAndSend(queueName, msg);
Thread.sleep(100);
}
@Component
public class Listenertest {
@RabbitListener(queues = "simple.queue")
public void listenSimple1(String msg){
System.out.println("收到消息:"+msg+"。");
}
}
3、同一队列,多个消费者时,默认的消息投递方式为轮询,一人一条,不考虑消费者处理能力,会产生消息堆积,可以在yml文件中加入如下配置,改为能者多劳。
spring:
rabbitmq:
#对消费者进行配置
listener:
simple:
#每次预取 1 条,处理结束后再取下一条。
prefetch: 1