springboot 項目 運行rabbitmq(推送+消費)

準備

先下載windos版本的mq

「rabbitmq-server-3.9.13.exe」//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中的訂單給消費掉

 

 

 

 

 

 
Tags: