springboot 项目 运行rabbitmq(推送+消费)

准备

先下载windos版本的mq

「rabbitmq-server-3.9.13.exe」https://www.aliyundrive.com/s/VKB63ghAJZx 

点击下载

 

1启动rabbitmq

双击

 

 

 如果出现端口占用的情况,进行以下操作

 

 

 右键->停止

账号密码默认:

guest

这里我是用新添加的admin账号,注意要给管理员权限

 生产者

2添加依赖

在项目中添加依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

3配置连接

配置rabbitmq的连接

rabbitmq:
  host: 192.168.126.17
  port: 5672
  username: admin
  password: admin

 

 

 

 

 

4创建队列

 

@Configuration
public class RabbitMQConfig {

//新建一个用来封装队列参数的对象,放入spring容器 //rabbitmq自动配置类会发现这个对象,使用其中的参数 //来创建队列 @Bean(name
= "orderQueue") public Queue orderQueue(){ return new Queue("orderQueue"); } }

 

 

5生产订单

在OrderServiceImpl中注入RabbitAutoConfigtion配置类AmqpTemplate

@Service
public class OrderServiceImpl implements OrderService {

    @Resource
    private AmqpTemplate amqpTemplate;
    @Override
    public void demo2() {
        String s = "测试demo2";
        amqpTemplate.convertAndSend("orderQueue",s);
    }

}

可以看到rabbitmq上存了一条消息

 

 

消费者

6创建消费者

在消费者系统中同样添加依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

添加配置信息

  rabbitmq:
    host: 192.168.126.17
    port: 5672
    username: admin
    password: admin

创建消费者类

/**
 * 基础配置 1.依赖,2.连接,3.队列
 *
 *
 *消费者从orderQueue接收订单,
 * 调用业务代码,完成订单存储
 */
@RabbitListener(queues = "orderQueue")
@Component
public class OrderComsumer {

    @Autowired
    private OrderService orderService;

    @RabbitHandler //配合RabbitListener,指定处理消息的方法
    public void receive(PdOrder order) throws Exception {
        System.out.println("订单已存储,id="+order.getOrderId());
    }
}

启动项目就可以把存在rabbitMQ中的订单给消费掉

 

 

 

 

 

 
posted @ 2022-06-14 15:51  jiuchengi  阅读(576)  评论(0编辑  收藏  举报