Windows 환경에서의 Apache RocketMQ 설치 및 최적화 설정 가이드

1. 환경 변수 설정

RocketMQ를 정상적으로 구동하기 위해서는 먼저 시스템 환경 변수에 ROCKETMQ_HOME을 등록해야 합니다. RocketMQ가 설치된 디렉토리 경로를 해당 변수 값으로 지정합니다.

2. NameServer 실행 스크립트 수정 (runserver.cmd)

RocketMQ의 기본 NameServer 설정은 JVM 힙 메모리를 2GB로 할당합니다. 로컬 테스트 환경이나 저사양 PC에서는 메모리 부족 문제가 발생할 수 있으므로 bin/runserver.cmd 파일을 편집하여 메모리 설정을 하향 조정합니다.

@echo off
rem 기존 고사양 설정 주석 처리
rem set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

rem 테스트 환경을 위한 경량 설정 추가
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"

설정 변경 후 mqnamesrv.cmd를 실행하면 기본 포트인 9876번으로 NameServer가 구동됩니다.

3. Broker 서버 설정 및 실행 (runbroker.cmd)

Broker 역시 실행 메모리가 높게 설정되어 있으므로 bin/runbroker.cmd 파일을 열어 수정이 필요합니다.

메모리 할당량 수정

@echo off
rem 기본 메모리 설정 비활성화
rem set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g"

rem 최소 운용을 위한 메모리 설정
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"

NameServer 주소 지정

Broker가 NameServer를 인식할 수 있도록 주소 정보를 스크립트 내에 명시하거나 실행 전 환경 변수로 선언합니다.

rem NameServer 위치 정의
set "NAMESRV_ADDR=localhost:9876"

rem Broker 실행 명령 호출
call "%ROCKETMQ_HOME%\bin\runbroker.cmd" org.apache.rocketmq.broker.BrokerStartup %*

4. Broker 상세 구성 (broker.conf)

conf/broker.conf 파일을 수정하여 클러스터 환경과 데이터 저장 경로를 정의할 수 있습니다. 특히 Windows 환경에서는 경로 구분에 유의해야 합니다.

# 클러스터 및 노드 식별 정보
brokerClusterName = RocketMQ_Local_Cluster
brokerName = broker-primary
brokerId = 0

# 데이터 보관 주기 (시간 단위) 및 삭제 시간 (새벽 4시)
deleteWhen = 04
fileReservedTime = 48

# 브로커 역할 및 디스크 동기화 방식
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH

# 자동 생성 옵션 활성화
autoCreateTopicEnable = true
autoCreateSubscriptionGroup = true

# 서비스 포트
listenPort = 10911

# 로컬 저장소 경로 설정 (사용자 환경에 맞게 수정)
storePathRootDir = C:\RocketMQ\storage
storePathCommitLog = C:\RocketMQ\storage\commitlog
storePathConsumeQueue = C:\RocketMQ\storage\consumequeue
storePathIndex = C:\RocketMQ\storage\index
storeCheckpoint = C:\RocketMQ\storage\checkpoint
abortFile = C:\RocketMQ\storage\abort

5. 클러스터 상태 확인

Broker가 정상적으로 등록되었는지 확인하려면 mqadmin 도구를 사용하여 클러스터 리스트를 조회합니다.

.\mqadmin.cmd clusterList -n localhost:9876

6. 관리 도구: RocketMQ Dashboard

GUI를 통해 메시지 흐름과 토픽 상태를 모니터링하고 싶다면 Apache RocketMQ Dashboard를 활용할 수 있습니다. 해당 프로젝트는 스프링 부트 기반으로 작성되어 있어 IDE나 Maven 빌드를 통해 손쉽게 실행 가능합니다.

소스 코드 위치: https://github.com/apache/rocketmq-dashboard

태그: Apache RocketMQ Message Queue Windows Configuration distributed messaging middleware

8월 4일 09:44에 게시됨