본문 바로가기
▶ Back-End/Server

MQTT Broker(mosqitto) 설치 및 설정

by 오늘도 코딩 2022. 11. 16.
728x90
반응형

Docker를 이용해 MQTT Broker를 간단하게 설치할 수 있다.

*자세한 설명 생략

 

 

① docker-compose.yml 생성

*docker-compose.yml 설명 아래 관련 글 참고

 

version: "3.7"
services:
    mqtt:
        container_name: mqtt-broker
        image: eclipse-mosquitto
        volumes:
            - mosquitto_conf:/mosquitto/config 
            - mosquitto_data:/mosquitto/data
            - mosquitto_log:/mosquitto/log
        networks:
            - mqttnet
        ports:
            - 1883:1883
volumes:
    mosquitto_conf:
    mosquitto_data:
    mosquitto_log:
networks:
  mqttnet:
    driver: bridge

 

 

② cmd 창을 열고 docker-compose.yml 이 위치한 곳으로 이동

 

 

③ docker-compose up -d

    - Image 다운로드 후 Container 시작

    *재가동 필요시 :  docker start mqtt-broker

    *docker ps로 상태 확인

 

 

④ docker exec -it mqtt-broker /bin/sh

    - 실행된 mqtt-broker의 로그를 확인하면  "local only mode."로 docker Container 내부에서 만 통신이 가능

      따라서 외부에서도 통신이 가능하게 설정이 필요

    *mqtt-broker 로그 확인 : docker logs -f mqtt-broker

 

 

 

⑤ docker exec -it  mqtt-broker  /bin/sh

    - mqtt-broker 로 진입

 

 

⑥ vi /mosquitto/config/mosquitto.conf 

    - Broker(mosquitto) 설정 파일 (mosquitto.conf)을 vi를 통해 Open

    - 아래 두 줄 추가(위치 상관없음)

    *vi에서 i를 누르면 편집모드

        allow_anonymous true

        listener 1883 0.0.0.0

    - 추가 후 저장 종료(esc 〉 :wq)

 

 

 

⑦ docker restart mqtt-broker

    - mqtt-broker Container 재시작

    *mqtt-broker 명령 창에 exit를 입력하여 Container에서 빠져나옴

        - 이때 재시작이 안되고 Container가 계속 종료된다면 설정 시 문제 발생

            - docker-compose down 후 ③부터 다시 진행

            *docker-compose.yml에 volume을 잡아뒀기 때문에 해당 volume도 삭제 후 진행해야 됨

 

 

 

▷ 참고

 

GitHub - gulteking/spring-boot-mqtt-sample: Sample Spring Boot MQTT Client Application

Sample Spring Boot MQTT Client Application. Contribute to gulteking/spring-boot-mqtt-sample development by creating an account on GitHub.

github.com

 

 

▷ 관련 글

 

docker-compose.yml Example

docker-compose.yml 간단한 예시와 속성 별 간단한 주석 * docker-compose 관련 설명 생략 * [주의] .yml 파일은 탭(tap)을 지원 하지 않음 ▷ docker-compose.yml # docker-compose 버전 version: '0.0' # 한개 또는 여러 개의

coding-today.tistory.com

 

MQTT 란?

MQTT ( Message Queueing Telemetry Transport ) * 자세한 설명 생략 ▷ MQTT 란? - IoT와 같이 제한되거나 대규모 트래픽 전송을 위해 만들어진 발행/구독 기반의 메시징 프로토콜 - 브로커와 클라이언트는 TCP/IP

coding-today.tistory.com

 

SpringBoot에서 MQTT Client + WebFlux 구축

WebFlux를 적용한 MQTT Client를 구축하고 Topic 메시지 도착 시 Callback으로 Bean을 통해 서비스 구분 *Mqtt Broker(mosqitto) 아래 관련 글 참고 *자세한 설명 생략 ▷ Project 전체 구조 *파일 이름으로 검색 가능

coding-today.tistory.com

 

 

728x90
728x90

댓글