springboot学习之旅10-消息AMQP(以rabbitmq实现)

消息服务的两个常见规范:JMS、AMQP

一、JMS和AMQP简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

JMS和AMQP对比:
在这里插入图片描述

在这里插入图片描述

二、rabbitmq的简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、rabbitmq的运行机制

在这里插入图片描述
Exchange的四种类型:
在这里插入图片描述
在这里插入图片描述

四、rabbitmq的整合

rabbitmq的管理界面
在这里插入图片描述
idea运行向导引入web、rabbitmq
在这里插入图片描述

1.配置

在这里插入图片描述

2.docker 镜像官网地址 docker hub

docker -d:表示后台运行 -p:表示暴露端口

docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq XXX(这边对应镜像的id)

3.测试类

class BootAmpqApplicationTests {

    @Autowired
    private AmqpAdmin amqpAdmin;

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    void contextLoads() {
        Map<String,String> map = new HashMap<>();
        map.put("msg","helloworld");
        map.put("username","tom");
//        rabbitTemplate.convertAndSend("exchange.direct","atguigu.news",map);
        rabbitTemplate.convertAndSend("exchange.direct","atguigu.news",new Book("西游记",99));
    }

    @Test
    void receive(){
        Object message = rabbitTemplate.receiveAndConvert("atguigu.news");
        System.out.println(message.getClass());
        System.out.println(message);
    }


    @Test
    void createExchange(){
        //创建交换器
//        amqpAdmin.declareExchange(new DirectExchange("atguigutest"));
        //创建队列
//        amqpAdmin.declareQueue(new Queue("guigutestQueue"));
        //创建绑定规则
        amqpAdmin.declareBinding(new Binding("guigutestQueue",Binding.DestinationType.QUEUE,"atguigutest","guigutestQueue",null));
        System.out.println("创建完成");
    }
}

4.rabbitmq的 RabbitAutoConfiguration配置类源码分析(原理)

在这里插入图片描述

5.监听

如果开启消息监听,在启动类上加上@EnableRabbit ,然后在业务层方法体上(监听方法上)加上@@RabbitListener(queues = “atguigu.news”) ,属性queues为一个数组,可以监听多个队列

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值