在 SpringBoot 之下的 RabbitMQ 简单应用

前言

最近做的作品,有一些是商业性的,如西区早餐自营网,涉及饥饿营销,都可能涉及做抢订的功能,
最常见的抢订如 双十一小米手机发布强红包 等。
rabbitmq 在项目中的引入势在必行!

结构

这里写图片描述

代码

在正式引入功能进项目之前,得先做一定的测试,以防突发情况,再做决策,如下便是

package com.cun;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.core.AmqpAdmin;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
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;


@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {

    // 广播、单播、接收 ...
    @Autowired
    RabbitTemplate rabbitTemplate;

    // 管理 Exchange、queue ...
    @Autowired
    AmqpAdmin amqpAdmin;

    /**
     * 1.1、创建 DirectExchange
     */
    @Test
    public void createExchange(){
        amqpAdmin.declareExchange(new DirectExchange("itaem.exchange"));
        System.out.println("创建 DirectExchange 完成");
    }

    /**
     * 1.2、创建 Queue
     */
    @Test
    public void createQueue(){
        amqpAdmin.declareQueue(new Queue("itaem.queue",true));
        System.out.println("创建 Queue 完成");
    }

    /**
     * 1.3、创建绑定规则
     */
    @Test
    public void createBinding(){

        amqpAdmin.declareBinding(new Binding("itaem.queue", Binding.DestinationType.QUEUE,"itaem.exchange","itaem",null));
        System.out.println("绑定规则 完成");
    }

    /**
     * 2.1、单播:发送
     */
    @Test
    public void convertAndSend() {
        //对象被默认序列化以后发送出去
        rabbitTemplate.convertAndSend("itaem.exchange","itaem","@linhongcun 凯通杯结束");
    }

    /**
     * 2.2、广播:发送
     */
    @Test
    public void sendMsg(){
        rabbitTemplate.convertAndSend("itaem.exchange","itaem","@全体成员 蓝桥杯正式开启");
    }

    /**
     * 3.1、接收信息
     */
    @Test
    public void receiveAndConvert(){
        Object o = rabbitTemplate.receiveAndConvert("itaem.queue");
        System.out.println(o.getClass());
        System.out.println(o);
    }

}

配置

端口号默认是 5672,服务器的 rabbitmq 不做修改的情况下,可以省略不写

spring.rabbitmq.host=120.79.197.130
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

其他

进入 rabbitmq 管理界面:http://120.79.197.131:15672,前面为自己的服务器的 ip,默认有如下帐号
帐号:guest
密码:guest
下面是运行 代码 1.1、创建 DirectExchange 的效果
这里写图片描述

小结

参考文章:springboot学习笔记-6 springboot整合RabbitMQ

猜你喜欢

转载自blog.csdn.net/larger5/article/details/80524290