安装部署
拉取镜像
docker pull rabbitmq:3.8-management
创建容器
docker run
-e RABBITMQ_DEFAULT_USER=root
-e RABBITMQ_DEFAULT_PASS=123456
-v mq-plugins:/plugins
–name mq
–hostname mq
-p 15672:15672
-p 5672:5672
-d
rabbitmq:3-management
RabbitMQ消息模型
代码
生产者
package cn.itcast.mq;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest
@RunWith(SpringRunner.class)
public class SpringAmqpTest {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void testSimpleQueue() throws InterruptedException {
String queueName = "simple.queue";
String message ="哈哈哈";
for (int i = 0; i < 10; i++) {
rabbitTemplate.convertAndSend(queueName,message+"【"+i+"】");
System.out.println(message);
Thread.sleep(20);
}
}
}
application.yml
logging:
pattern:
dateformat: MM-dd HH:mm:ss:SSS
spring:
rabbitmq:
host: 192.168.88.130
port: 5672
virtual-host: /
username: root
password: 123456
消费者
@Component
public class SpringRabbitListener {
@RabbitListener(queues = "simple.queue")
public void testSimpleQueue1(String msg) throws InterruptedException {
System.out.println("spring 消费者1接收到消息:【" + msg + "】");
Thread.sleep(20);
}
@RabbitListener(queues = "simple.queue")
public void testSimpleQueue2(String msg) throws InterruptedException {
System.out.println("spring 消费者2接收到消息:【" + msg + "】");
Thread.sleep(200);
}
application.yml
logging:
pattern:
dateformat: MM-dd HH:mm:ss:SSS
spring:
rabbitmq:
host: 192.168.88.130
port: 5672
virtual-host: /
username: root
password: 123456
listener:
simple:
prefetch: 1(能者多劳原则)