天天看點

spring boot 2.2.4內建 rabbitmq

安裝

軟體位址

所需安裝包

https://download.csdn.net/download/qq_41291945/12774259

所需環境

  • rabbitmq-server-3.7.4.exe
  • otp_win64_20.3.exe
安裝 otp_win64_20.3.exe

RabbitMQ服務端代碼是使用并發式語言Erlang編寫的,安裝Rabbit MQ的前提是安裝Erlang。

spring boot 2.2.4內建 rabbitmq

安裝 otp_win64_20.3 十分簡單, 直接輕按兩下傻瓜式安裝即可,但是安裝的時候需要記住安裝的位置, 因為後續需要設定環境變量。

配置環境變量

1、建立立環境變量

  • 變量名 ERLANG_HOME
  • 變量值 C:\Program Files\erl9.3 (你安裝的具體位置)

2、path 中添加

  • %ERLANG_HOME%\bin

3、測試

在 cmd 下輸入 erl

spring boot 2.2.4內建 rabbitmq
安裝 rabbitmq
  • 輕按兩下下載下傳後的.exe檔案,安裝過程與erlang的安裝過程相同。
  • RabbitMQ安裝好後接下來安裝RabbitMQ-Plugins。打開指令行cd,輸入RabbitMQ的sbin目錄。
    spring boot 2.2.4內建 rabbitmq

安裝管理插件

sbin目錄 下打開 cmd 執行指令

  • rabbitmq-plugins enable rabbitmq_management

如下圖所示便是成功了!

spring boot 2.2.4內建 rabbitmq

啟動

點選 rabbitmq-server.bat啟動即可, 如果啟動失敗, 請計算機的服務中檢視是否已經開啟了 服務, 如果開啟請關閉後重新啟動. 出現如下便是成功啟動!

spring boot 2.2.4內建 rabbitmq
  • 通路管理界面 http://localhost:15672/#/
  • 初始化賬号密碼: guest
    spring boot 2.2.4內建 rabbitmq
spring boot 2.2.4內建 rabbitmq

spring boot 內建 mq

依賴

添加依賴

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

配置

spring:
  application:
    name: rabbitmq-send
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
server:
  port: 4001

           
@Configuration
public class Mq {
    private final String QUEUE_NAME = "hello";

    @Bean
    public Queue helloQueue(){
        return new Queue(QUEUE_NAME);
    }

}

           

運作啟動類

此時已經連接配接到了 mq

spring boot 2.2.4內建 rabbitmq

編碼

1 發送者

@Component
public class Sender {

    @Autowired
    private AmqpTemplate rabbitTemplate;

    public void send() {
        String context = "hello - > " + new Date();
        System.out.println("Sender :" + context);
        //hello為建立的隊列名,context為發送的消息
        this.rabbitTemplate.convertAndSend("hello", context);
    }
}
           

2 監聽者

@RabbitListener(queues = "hello")
@Component
public class Receive {
    /**
     * 處理接受到的消息
     * @param hello
     */
    @RabbitHandler
    public void process(String hello){
        System.out.println("Receiver:"+hello);
    }
}
           

3 controller 測試

@RestController
public class SendController {
    @Resource
    private Sender sender;

    @GetMapping("mq")
    public String mq() {
        sender.send();
        return "消息已發送..";
    }
           
spring boot 2.2.4內建 rabbitmq

成功內建 !!!

參考連結

  • RabbitMQ啟動管理插件報錯解決方案: https://blog.csdn.net/weixin_39270764/article/details/80907917
  • RabbitMQ安裝後無法啟動問題:https://blog.csdn.net/weixin_38256991/article/details/79106956
  • RabbitMQ 安裝 rabbitmq-plugins 報錯: https://blog.csdn.net/u012688704/article/details/82190065?utm_source=distribute.pc_relevant.none-task
  • springboot內建rabbitMq遇到的坑:https://blog.csdn.net/chehec2010/article/details/84891824

繼續閱讀