1.pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
<version>1.5.2.RELEASE</version>
</dependency>
yaml
spring:
thymeleaf:
cache: false
application:
name: dlxj
rabbitmq:
host: ip
port: 5672
username: hjg
password: hjg
virtual-host: /ems
生产者写入消息队列
@Autowired
RabbitTemplate rabbitTemplate;
@Test
void helloWorld(){
rabbitTemplate.convertAndSend("hello", "hello world");
}
消费者取消息
@Component
@RabbitListener(queuesToDeclare = @Queue("hello")) //代表没有队列 去声明一个队列
public class Customer01 {
@RabbitHandler
public void receive(String message){
System.out.println(message);
}
}
生产者
@Autowired
RabbitTemplate rabbitTemplate;
@Test
void work(){
rabbitTemplate.convertAndSend("work", "work模型");
rabbitTemplate.convertAndSend("work", "work模型");
}
消费者
@Component
public class Customer01 {
@RabbitListener(queuesToDeclare = @Queue("work")) //代表没有队列 去声明一个队列
public void receive2(String message){
System.out.println("message1" + message);
}
@RabbitListener(queuesToDeclare = @Queue("work")) //代表没有队列 去声明一个队列
public void receive3(String message){
System.out.println("message2" + message);
}
}
采用轮询的方式取消息
发布订阅模型
@Autowired
RabbitTemplate rabbitTemplate;
@Test
void fanout(){
rabbitTemplate.convertAndSend("logs","", "fanout模型");
}
@RabbitListener(bindings = {
@QueueBinding(value = @Queue, /*不指定队列就是临时队列*/exchange = @Exchange(value = "logs", type = "fanout"))
})
public void receive4(String message){
System.out.println("message1" + message);
}
@RabbitListener(bindings = {
@QueueBinding(value = @Queue, /*不指定队列就是临时队列*/exchange = @Exchange(value = "logs", type = "fanout"))
})
public void receive5(String message){
System.out.println("message2" + message);
}
@Autowired
RabbitTemplate rabbitTemplate;
@Test
void route(){
rabbitTemplate.convertAndSend("directs","info", "info类型的信息");
rabbitTemplate.convertAndSend("directs","error", "error类型的信息");
}
@RabbitListener(bindings = {
@QueueBinding(
value = @Queue,
exchange = @Exchange(value = "directs", type = "direct"),
key = {"info", "error", "warn"}
)
})
public void receive7(String message) {
System.out.println("都可以结接收信息: " + message);
}
@RabbitListener(bindings = {
@QueueBinding(
value = @Queue,
exchange = @Exchange(value = "directs", type = "direct"),
key = { "error"}
)
})
public void receive6(String message) {
System.out.println("只接受error相关信息: " + message);
}
@Autowired
RabbitTemplate rabbitTemplate;
@Test
void topics(){
rabbitTemplate.convertAndSend("topic","user.save", "uer.save类型的信息");
}
@RabbitListener(bindings = {
@QueueBinding(
value = @Queue,
exchange = @Exchange(type = "topic", value = "topic"),
key = { "user.*"}
)
})
public void receive8(String message) {
System.out.println("topics: " + message);
}