RabbitMQ 시작하기 (RabbitMQ 설치 + RabbitMQ 설치 과정 중 버전 등 문제 해결 + RabbitMQ 서비스 시작 실패 등 문제 해결 + Java 클라이언트 사용)

RabbitMQ 시작하기 (RabbitMQ 설치 + RabbitMQ 설치 과정 중 버전 등 문제 해결 + RabbitMQ 서비스 시작 실패 등 문제 해결 + Java 클라이언트 사용)

1. 서문 - 공식 홈페이지 참조

1.1 공식 웹사이트 주소

1.2 버전 비교에 주의하세요

  • Linux 버전에서 지원되는 RabbitMQ 버전을 참고하세요.
    여기에 이미지 설명을 삽입하세요.
  • Linux에서 지원하는 Erlang 버전을 참고하세요.
    여기에 이미지 설명을 삽입하세요.
  • RabbitMQ에서 지원하는 Erlang 버전을 확인하세요.
    여기에 이미지 설명을 삽입하세요.

2. 다운로드 및 설치

2.1 얼랭 다운로드 및 설치

2.1.1 리눅스 버전 확인

  • 내 편은 centos이며 명령은 다음과 같습니다.
    cat /etc/centos-release
    
    여기에 이미지 설명을 삽입하세요.

2.1.2 현재 시스템에서 지원하는 erlang 버전 확인

  • 명령은 다음과 같습니다:
    uname -a
    
    여기에 이미지 설명을 삽입하세요.

2.1.3 얼랭 다운로드

  • 다운로드 주소:
    https://github.com/rabbitmq/erlang-rpm .
  • Linux 버전과 시스템에서 지원하는 erlang 버전에 따라 다음과 같이 해당 erlang을 다운로드하십시오.
    여기에 이미지 설명을 삽입하세요.
  • 그래서 여기서 다운받은 내용은 Erlang 23.3.4.18다음과 같습니다.
    여기에 이미지 설명을 삽입하세요.

2.1.4 얼랭 설치

  • 설치 명령은 다음과 같습니다.
    rpm -ivh erlang-23.3.4.18-1.el7.x86_64.rpm
    
    여기에 이미지 설명을 삽입하세요.
    여기에 이미지 설명을 삽입하세요.

2.1.5 발생한 문제

  • 설명: 설치 erlang-23.3.4.18-1.el8.x86_64.rpm( ) el8로 인해 발생한 문제인데, 설치 erlang-23.3.4.18-1.el7.x86_64.rpm( el7)에는 문제가 없습니다. 제가 사용하는 Linux 시스템에서는 위 확인 내용대로 지원하므로 el7버전 문제인지는 모르겠습니다!
  • 다음과 같이:
    error: Failed dependencies:
            libtinfo.so.6()(64bit) is needed by erlang-23.3.4.18-1.el8.x86_64
            libz.so.1(ZLIB_1.2.7.1)(64bit) is needed by erlang-23.3.4.18-1.el8.x86_64
    
    여기에 이미지 설명을 삽입하세요.
  • 문제 해결: 또한 이 명령의 기능은
    다음과 같습니다 . 더 이상 패키지 간의 종속성을 분석하고 직접 설치하지 않습니다.--nodeps --force
    rpm -ivh erlang-23.3.4.18-1.el8.x86_64.rpm --nodeps --force
    
    여기에 이미지 설명을 삽입하세요.

2.2 socat 설치

  • 설치 명령은 다음과 같습니다.
    yum install socat -y
    

2.3 Rabbitmq-server 다운로드 및 설치

2.3.1 Rabbitmq 서버 다운로드

2.3.2 Rabbitmq 서버 설치

  • 설치 명령은 다음과 같습니다.
    rpm -ivh rabbitmq-server-3.9.13-1.el7.noarch.rpm
    
    여기에 이미지 설명을 삽입하세요.

3. 서비스 시작

3.1 서비스 시작

  • 설치 후 설치 디렉토리를 찾으십시오.
    whereis rabbitmq
    
    여기에 이미지 설명을 삽입하세요.
  • 설치 sbin디렉터리를 입력하세요:
    여기에 이미지 설명을 삽입하세요.
  • 서비스 시작
    ./rabbitmq-server start
    
    여기에 이미지 설명을 삽입하세요.
  • 서비스가 시작되었는지 확인하십시오.
    ps -ef | grep rabbitmq
    
    여기에 이미지 설명을 삽입하세요.

3.2 서비스 시작 실패

3.2.1 버전 문제

  • 시동이 실패하면 erlang이 설치되어 있는지, erlang 버전이 맞는지 확인하세요.check 명령은 다음과 같습니다.
    rpm -qa|grep erlang
    
  • 잘못된 버전이 설치된 경우 erlang제거하고 다시 설치할 수 있습니다.(rabbitmq는 erlang에 의존하므로 제거하기 전에 Rabbitmq를 제거하십시오.) 제거 명령은 다음과 같습니다.
    # 1. 卸载rabbitmq-server
    rpm -e rabbitmq-server
    rm -rf /usr/lib/rabbitmq
    
    # 2. 卸载erlang
    rpm -e erlang
    rm -rf /usr/lib64/erlang
    
  • 그런 다음 올바른 버전을 다시 설치하십시오.

4. 관리 인터페이스에 액세스

4.1 그래픽 관리 인터페이스 열기

  • Rabbitmq가 시작되면 먼저 서비스를 중지한 후 웹 인터페이스 플러그인을 설치합니다.명령어는 다음과 같습니다.
    rabbitmq-plugins enable rabbitmq_management
    

4.2 점유된 포트 확인

  • 다음과 같이:

    ps -ef | grep rabbit
    lsof -i | grep pid
    

    여기에 이미지 설명을 삽입하세요.

4.3 오픈 포트 15672

4.4 관리 인터페이스에 액세스

  • 주소:
    http://服务器IP:15672/
    
    여기에 이미지 설명을 삽입하세요.

4.5 로그인 문제

4.5.1 문제

  • 로그인, 사용자 이름과 비밀번호는 모두 guest입니다. 로그인 후 프롬프트는 다음과 같습니다.
    여기에 이미지 설명을 삽입하세요.

4.5.2 문제 해결 - 새 사용자 생성

  • 설치 디렉터리를 입력하고 사용자 및 역할을 봅니다.
    cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.9.13/sbin
    
    ./rabbitmqctl list_users
    
    여기에 이미지 설명을 삽입하세요.
  • 새 사용자 만들기
    • 1단계: mqAdmin 사용자 추가 및 비밀번호 123456 설정
      rabbitmqctl add_user mqAdmin 123456
      
    • 2단계: 사용자 역할 설정(mqAdmin 사용자를 관리자 역할로 설정)
      rabbitmqctl set_user_tags mqAdmin administrator
      
    • 3단계: 사용자 권한 설정(vhost 및 쓰기/읽기 허용 액세스 지정)
      rabbitmqctl set_permissions -p "/" mqAdmin ".*" ".*" ".*"
      
    • 4단계, 다음을 확인하세요.
      여기에 이미지 설명을 삽입하세요.

4.6 로그인 - 새 사용자 사용

  • 위에서 새로 생성된 사용자를 사용하여 다음과 같이 mqAdmin로그인합니다 .
    여기에 이미지 설명을 삽입하세요.
    여기에 이미지 설명을 삽입하세요.

5. 서비스 및 기타 관련 명령 시작, 중지

5.1 시작 명령

5.1.1 시동 방법

  • 방법 1: 위에서 사용된 것입니다. 설치 디렉터리의 sbin 디렉터리를 입력하고 시작합니다.
    cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.9.13/sbin/
    
    ./rabbitmq-server start
    
  • 웨이 2:다음과 같이 시작을 설정합니다.
    chkconfig rabbitmq-server on
    
    여기에 이미지 설명을 삽입하세요.
  • 방법 3: 서비스 명령 시작(어느 디렉터리에서나 실행 가능)
    service rabbitmq-server start 
    
    여기에 이미지 설명을 삽입하세요.

5.1.2 시작 문제——rabbitmq-server.service 작업이 실패했습니다…

5.1.2.1 질문
  • 명령을 사용하여 오류 보고 문제를 시작할 때 service rabbitmq-server start문제 설명은 다음과 같습니다.
    Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
    
    여기에 이미지 설명을 삽입하세요.
5.1.2.2 문제 해결
5.1.2.2.1 시도 1:
  • journalctl -xe자세한 문제를 보려면 명령을 실행하십시오 .
    여기에 이미지 설명을 삽입하세요.
  • 문제를 해결하십시오(/var/log/rabbitmq/ 디렉터리에 있는 두 로그 파일의 그룹 및 소유자를 Rabbitmq로 수정).
    cd /var/log/rabbitmq/
    
    chown -R rabbitmq:rabbitmq rabbit@hello_TQ1*
    
    여기에 이미지 설명을 삽입하세요.
5.1.2.2.2 시도 2:
  • 위의 문제를 해결한 후에도 다시 시작한 후에도 오류가 계속 발생하면 journalctl -xe다음과 같이 명령을 다시 실행하여 자세한 문제를 확인하십시오.
    여기에 이미지 설명을 삽입하세요.
  • 해결 방법은 위와 동일합니다. 다음과 같이 오류를 보고하지 않고 명령을 다시
    여기에 이미지 설명을 삽입하세요.
    실행합니다 .service rabbitmq-server start
    여기에 이미지 설명을 삽입하세요.

5.2 일반적으로 사용되는 명령 요약

  • 서비스 시작
    service rabbitmq-server start
    
  • 서비스 중단
    service rabbitmq-server stop
    
  • 서비스 다시 시작
    service rabbitmq-server restart
    
    여기에 이미지 설명을 삽입하세요.

6. 빠른 시작

6.1 콘솔에서 메시지 보내기 시뮬레이션

  • 스위치를 만들려면 물론 기본 스위치를 사용할 수 있지만 여기서는 수고를 덜기 위해 기본 스위치를 사용하겠습니다.amq.팬아웃
    여기에 이미지 설명을 삽입하세요.

  • 대기열 생성
    여기에 이미지 설명을 삽입하세요.
    여기에 이미지 설명을 삽입하세요.

  • 스위치는 다음과 같이 대기열을 바인딩합니다.
    여기에 이미지 설명을 삽입하세요.
    여기에 이미지 설명을 삽입하세요.

  • 문자 보내
    여기에 이미지 설명을 삽입하세요.
    여기에 이미지 설명을 삽입하세요.

  • 확인하다
    여기에 이미지 설명을 삽입하세요.

    여기에 이미지 설명을 삽입하세요.

6.2 자바 클라이언트 - 기본 코드

6.2.1 치어 파일

  • 다음과 같이:
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.liu.susu</groupId>
      <artifactId>rabbitmq-demo1</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>jar</packaging>
    
      <name>rabbitmq-demo1</name>
      <url>http://maven.apache.org</url>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
    
      <dependencies>
    
    <!--    rabbitmq依赖客户端-->
        <dependency>
          <groupId>com.rabbitmq</groupId>
          <artifactId>amqp-client</artifactId>
          <version>5.8.0</version>
        </dependency>
        <dependency>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
          <version>2.6</version>
        </dependency>
    
    
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>8</source>
                        <target>8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    
    

6.2.2 생산자

  • 시험:
    여기에 이미지 설명을 삽입하세요.
  • 효과를 확인해보세요
    여기에 이미지 설명을 삽입하세요.
  • 첨부코드
    package com.liu.susu.example;
    
    import com.rabbitmq.client.Channel;
    import com.rabbitmq.client.Connection;
    import com.rabbitmq.client.ConnectionFactory;
    
    /**
     * @Description 生产者
     * @Author susu
     */
    public class Producer {
          
          
        // 队列名称
        public static  final  String QUEUE_NAME = "queue-hello";
    
        public static void main(String[] args) throws Exception{
          
          
            //1. 创建连接工厂
            ConnectionFactory factory = new ConnectionFactory();
            //2. 工厂IP连接rabbitmq的队列
            factory.setHost("服务IP地址");
            //3. 连接用户名和密码
            factory.setUsername("mqAdmin");
            factory.setPassword("123456");
            //4. 创建连接
            Connection connection = factory.newConnection();
            //5. 获取信道
            Channel channel = connection.createChannel();
            /**
             * 6. 创建一个队列
             */
            channel.queueDeclare(QUEUE_NAME,false,false,false,null);
            //7. 定义发送消息的内容
            String msg = "hello world!!!,我来之于Java程序";
            /**
             * 8. 发送消息
             *    1. 参数1:交换机(发送到哪个交换机上)
             *    2. 参数2:路由key的值(本次发送用的队列名称)
             *    3. 参数3:其他参数信息 (本次没有,直接null)
             *    4. 参数4:发送消息的消息体
             */
            channel.basicPublish("",QUEUE_NAME,null,msg.getBytes());
            System.out.println("=====消息发送成功=====");
        }
    }
    
    

6.2.3 소비자

  • 소비하기 전에 먼저 대기열의 메시지를 읽으세요.
    여기에 이미지 설명을 삽입하세요.

  • 소비자 소비 메시지 테스트
    여기에 이미지 설명을 삽입하세요.

  • 소비 후 대기열의 메시지를 확인하세요.
    여기에 이미지 설명을 삽입하세요.

  • 첨부된 코드:

    package com.liu.susu.example;
    
    import com.rabbitmq.client.*;
    
    
    /**
     * @Description 消费者 接收消息
     * @Author susu
     */
    public class Consumer {
          
          
        // 队列名称
        public static  final  String QUEUE_NAME = "queue-hello";
    
        public static void main(String[] args) throws Exception{
          
          
            //1. 创建连接工厂
            ConnectionFactory factory = new ConnectionFactory();
            //1.1. 工厂IP连接rabbitmq的队列
            factory.setHost("服务IP地址");
            //1.2. 连接用户名和密码
            factory.setUsername("mqAdmin");
            factory.setPassword("123456");
            //2. 创建连接
            Connection connection = factory.newConnection();
            //3. 获取信道
            Channel channel = connection.createChannel();
    
            // 接收消息后的回调
            DeliverCallback deliverCallback = (consumerTag,msg)->{
          
          
                byte[] msgBody = msg.getBody();
                System.out.println("消费的消息是:" + new String(msgBody));
            };
    
            // 取消消息时的回调
            CancelCallback cancelCallback = (consumerTag)->{
          
          
                System.out.println("===消息消费被取消====");
            };
    
            /**
             * 4. 消费者消费消息
             *    1. 参数1:消费哪个队列
             *    2. 参数2:消费成功之后是否要自定应答
             *             true——自动应答
             *             false——手动应答
             *    3. 参数3:消费者接收消息后的回调方法
             *    4. 参数4:消费者取消消费的回调(正常接收不调用)
             */
            channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback);
        }
    
    }
    
    

6.2.4 발생한 문제

6.2.4.1 문제 1——연결 시간 초과
  • 문제 설명: 작업 시간 초과(Connection timed out)
    여기에 이미지 설명을 삽입하세요.
  • 문제 해결
    클라우드 서비스의 경우 보안 그룹의 포트를 열면 5672문제를 해결할 수 있습니다.
6.2.4.2 질문 2——연결이 거부되었습니다.
  • 질문은 다음과 같습니다.
    Connection refused (Connection refused)
    
    여기에 이미지 설명을 삽입하세요.
  • 문제를 해결하십시오.
    방화벽이 닫혀 있지 않으면 5672방화벽의 포트를 엽니다.
    sudo firewall-cmd --add-port=5672/tcp --permanent
    
    firewall-cmd --reload
    

6.3 자바 클라이언트——Spring AMQP

6.3.1 소개

  • AMQP(Advanced Message Queuing Protocol)는 애플리케이션 간에 비즈니스 메시지를 전달하기 위한 개방형 표준입니다. 이 프로토콜은 언어 플랫폼과는 아무런 관련이 없으며 마이크로서비스의 독립성에 대한 요구 사항에 더 부합합니다.
  • Spring AMQP는 메시지를 보내고 받기 위한 템플릿을 제공하는 AMQP 프로토콜을 기반으로 하는 API 사양 집합입니다.
    • Spring AMQP는 spring-amqpspring-rabbit부분으로 구성됩니다. spring-amqp는 기본 추상화이고 spring-rabbit은 기본 기본 구현입니다.
    • 공식 웹사이트(
      https://spring.io/projects/spring-amqp )를 참고하세요 .

6.3.2 프로젝트 구조

  • 디렉토리 구조
    여기에 이미지 설명을 삽입하세요.

  • parentpom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.liu.susu</groupId>
      <artifactId>rabbitmq-demo2</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>pom</packaging>
    
      <name>rabbitmq-demo2</name>
      <url>http://maven.apache.org</url>
    
      <modules>
        <module>producer</module>
        <module>consumer</module>
      </modules>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    
        <junit.version>3.8.1</junit.version>
        <lombok.version>1.16.8</lombok.version>
        <spring-boot.version>2.7.16</spring-boot.version>
      </properties>
    
    <dependencyManagement>
      <dependencies>
    
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-dependencies</artifactId>
          <version>${spring-boot.version}</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
    
    <!--    AMQP依赖,包含RabbitMQ-->
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-amqp</artifactId>
          <version>2.7.14</version>
        </dependency>
    
        <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>${lombok.version}</version>
        </dependency>
    
    <!--    <dependency>-->
    <!--      <groupId>junit</groupId>-->
    <!--      <artifactId>junit</artifactId>-->
    <!--      <version>${junit.version}</version>-->
    <!--      <scope>test</scope>-->
    <!--    </dependency>-->
    
      </dependencies>
    </dependencyManagement>
    </project>
    
    

6.3.3 생산자 서비스

  • pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>com.liu.susu</groupId>
            <artifactId>rabbitmq-demo2</artifactId>
            <version>1.0-SNAPSHOT</version>
        </parent>
    
        <artifactId>producer</artifactId>
        <packaging>jar</packaging>
        <name>producer</name>
        <description>producer</description>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
    
            <!-- AMQP依赖,包含RabbitMQ-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-amqp</artifactId>
            </dependency>
    
            <!--单元测试-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <testFailureIgnore>true</testFailureIgnore>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>
    
    
  • application.yml

    spring:
      rabbitmq:
        host: 服务IP地址  # 服务IP
        port: 5672  # 端口(发送消息的端口5672  rabbitmq管理界面的端口15672)
    #    virtual-host: /mqAdmin   # 虚拟主机
        username: mqAdmin  # 用户名
        password: 123456  # 密码
    
  • 메시지 전송을 위한 테스트 클래스

    package com.liu.susu.producer;
    
    import org.junit.jupiter.api.Test;
    import org.springframework.amqp.rabbit.core.RabbitTemplate;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    
    /**
     * @Description
     * @Author susu
     */
    @SpringBootTest
    public class ProducerTest {
          
          
    
        @Autowired
        private RabbitTemplate rabbitTemplate;
    
        @Test
        public void publishMsg(){
          
          
            System.out.println("---------------------");
            String queueName = "queue-hello";
            String msg = "hello,I am from amqp!!!";
            //发送消息
            rabbitTemplate.convertAndSend(queueName,msg);
            System.out.println("amqp——消息发送成功!!!");
        }
    
    }
    
  • 효과를 확인하기 위한 테스트
    여기에 이미지 설명을 삽입하세요.

6.3.4 소비자 서비스

  • pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>com.liu.susu</groupId>
            <artifactId>rabbitmq-demo2</artifactId>
            <version>1.0-SNAPSHOT</version>
        </parent>
    
        <artifactId>consumer</artifactId>
        <packaging>jar</packaging>
        <version>0.0.1-SNAPSHOT</version>
        <name>consumer</name>
        <description>consumer</description>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
    
            <!-- AMQP依赖,包含RabbitMQ-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-amqp</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    
    
  • application.yml

    logging:
      pattern:
        dateformat: HH:mm:ss:SSSS
    spring:
      rabbitmq:
        host: 服务IP地址  # 服务IP
        port: 5672  # 端口(发送消息的端口5672  rabbitmq管理界面的端口15672)
    #    virtual-host: /mqAdmin   # 虚拟主机
        username: mqAdmin  # 用户名
        password: 123456  # 密码
    
  • 메시지를 받는 구성요소

    package com.liu.susu.consumer.listeners;
    
    import org.springframework.amqp.rabbit.annotation.RabbitListener;
    import org.springframework.stereotype.Component;
    
    /**
     * @Description
     * @Author susu
     */
    
    @Component
    public class MqListener {
          
          
    
        @RabbitListener(queues = "queue-hello") //监听的队列
        public void listenQueues(String msg){
          
          
            System.out.println("消费者收到消息===>"+msg);
        }
    }
    
    
  • 서비스를 시작하고 테스트하여 효과를 확인하세요.
    여기에 이미지 설명을 삽입하세요.

6.4 추가 항목

추천

출처blog.csdn.net/suixinfeixiangfei/article/details/133341025