springboot整合rabbitmq

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);
    }

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值