rabbitMQ最基本的使用

1. rabbitMQ的四種模式:可自行百度

     以下是自己的理解,mq的消費模式無非是從 交換機  ,隊列 入手的。

  1. 生產者-消費模式: 交換機不動(默認的交換機),設置隊列(設置queue的key:qk【自定義】)
    1. 連接這個qk隊列上的消費者收到生產者的消息
  2. 發佈-訂閱模式:設置交換機(設置exchange的key),隊列不動。
    1. 連接這個交換機的隊列所有的消費者都收到生產者的消息
  3. direct模式:設置交換機,設置隊列。
    1. 連接這個交換機和這個隊列上的消費者收到這個消息。
  4. topc模式:設置交換機設置隊列[自定義routkey的規則]
    1. 根據隊列key去模糊匹配上這個 交換機的上所有的隊列key。

2.以下是使用乾貨

  1. 配置queue的名稱
    1. import org.springframework.amqp.core.Queue;
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;
      
      @Configuration
      public class RabbitMQConfig {
          @Bean
          public Queue myQueue() {
              return new Queue(Constant.RABBITMQ_ROUT_KEY); //這個key是字符串常量
          }
      
      }

       

  2. 生產者
    1. import org.springframework.amqp.core.AmqpTemplate;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.stereotype.Component;
      
      import java.util.Date;
      
      /**
       * @author wupeng
       * @date 2019/6/21 13:44
       * @desc MQ 生產者
       */
      @Component
      public class RabbitMQSender {
          @Autowired
          private AmqpTemplate rabbitTemplate;
      
          public void send() {
              String context = "hello " + new Date();
              System.err.println("Sender : " + context);
              this.rabbitTemplate.convertAndSend(Constant.RABBITMQ_ROUT_KEY, context);
          }
      
          public void send(SRoomEntity sRoomEntity){
              sRoomEntity = SRoomEntity.builder()
                      .roomId("2")
                      .useId("2")
                      .projectId("2")
                      .label("工程2")
                      .originCode("hoc")
                      .createTime(new Date())
                      .build();
              System.err.println("Sender Object: " + sRoomEntity.toString());
              this.rabbitTemplate.convertAndSend(Constant.RABBITMQ_ROUT_KEY,sRoomEntity);
          }
      }

       

  3. 消費者
    1. import org.springframework.amqp.rabbit.annotation.RabbitHandler;
      import org.springframework.amqp.rabbit.annotation.RabbitListener;
      import org.springframework.stereotype.Component;
      
      /**
       * @author wupeng
       * @date 2019/6/21 13:44
       * @desc MQ 消費者
       */
      @Component
      @RabbitListener(queues = Constant.RABBITMQ_ROUT_KEY)
      public class RabbitMQReceiver {
      
          @RabbitHandler
          public void process(String hello) {
              System.err.println("Receiver  : " + hello);
          }
      
        
          @RabbitHandler
          public void process(SRoomEntity sRoomEntity) {
              System.err.println("Receiver object : " + sRoomEntity.toString());
          }
      }

      以上使用一個發送字符串,一個發送對象的方法

  4. 總結:以上只是簡單的 生產-消費者模式,使用的是默認的交換機模式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章