docker

[docker] rabbitmq 설치 및 사용법

nan2 2023. 5. 31. 09:51
반응형

[ 설치 ]

 

1. Docker로 RabbitMQ 설치

docker run -d --name rabbitmq -p 5672:5672 -p 8080:15672 --restart=unless-stopped rabbitmq:management

 

-d: 백그라운드로 실행

--name: 컨테이너명

-p: 호스트와 컨테이너 사이의 포트 포워딩 (5672: RabbitMQ 기본 통신 포트, 15672: RabbitMQ 웹 대시보드 통신 포트, 25672: 클러스터 구성 필요 시)

--restart:stopped: 사용자가 멈추기 전까지는 계속 재부팅 시 실행

 

 

 

2. RabbitMQ 설치 확인하기

 

localhost:8080 으로 접속하면 RabbitMQ 관리 페이지로 접속된다.

로그인 ID, PW는 guest로 입력해준다.

 

 

 

접속 완료!

 

 

 

[ 사용 ]

 

1. 스프링 프로젝트 2개 생성(RabbitMQ 라이브러리를 추가해줌)

- producer / consumer

application.yml 파일에 아래 내용 공통으로 넣어줌

spring:
  rabbitmq:
    host: {{ host }}
    port: {{ port }}
    username : {{ username }}
    password : {{ password }}

 

 

 

2. producer 프로젝트 만들기 (메세지 보내는 애플리케이션)

@Service
public class MsgProducer {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void send(String name){
        //send1
        rabbitTemplate.convertAndSend("{{ queue_name }}", {{ message }});
        //send2
        //rabbitTemplate.convertAndSend("{{ exchange_name }}","{{ routingkey }}", "{{ message }}");
    }
}

 

@SpringBootApplication
public class ProducerApplication implements CommandLineRunner {


    @Autowired
    private Producer producer;

    public static void main(String[] args) {
        SpringApplication.run(ProducerApplication.class, args);
    }

    @Override
    public void run(String... args) {

        producer.send("Hi!!");
    }
}

 

 

 

3. consumer 프로젝트 만들기 (메세지 받아보는 애플리케이션)

@Service
public class Consumer {

    @RabbitListener(queues = "{{queue_name}}")
    public void listen(String message){

        System.out.println("전달받은 message ::: " + message);

    }
}

 

@SpringBootApplication
public class ConsumerApplication {

    public static void main(String[] args) {

        SpringApplication.run(ConsumerApplication.class, args);

    }

}
반응형