Nacos 서버 설정 및 주요 문제 해결 방법

문제 발생 시 아래 해결책 참고

com.alibaba.nacos.api.exception.NacosException: Client not connected, current status: STARTING
    at com.alibaba.nacos.common.remote.client.RpcClient.request(RpcClient.java:639) ~[nacos-client-2.2.0.jar:na]

최근 마이크로서비스 프로젝트를 공부하며, 친구들과 함께 사용할 수 있도록 서버에 Nacos를 배포해보기로 했습니다. 설치 과정을 정리해 봅니다.

1. JDK 환경 설정

1) 서버에 설치된 JDK 확인

java -version

2) 버전 불일치 시 기존 JDK 제거

# OpenJDK 8 제거
sudo yum remove java-1.8.0-openjdk*

3) JDK 제거 완료 여부 확인

java -version

command not found와 같은 메시지가 출력된다면 정상적으로 제거된 것입니다.

4) 관련 환경 변수 및 파일 정리

sudo rm -rf /usr/lib/jvm/java-1.8.0-openjdk
sudo rm -rf /usr/java/jdk1.8.0_*
sudo vi /etc/profile

/etc/profile 파일에서 JDK 관련 경로 설정을 삭제한 후 저장 후 종료합니다.

JDK 미설치 상태라면, 다음 문서를 참고하여 설치하세요: Linux에서 Java 환경 구성 가이드


2. Nacos 다운로드 및 설치

1) 공식 웹사이트에서 필요한 버전 다운로드 (예: 2.3.2)

Release 2.3.2 (Apr 3rd, 2024) Linux용 압축 파일을 다운로드 후, 로컬 컴퓨터에서 서버로 전송 (예: scp, rsync 등 활용)

2) 서버에 업로드 후 압축 해제

tar -zxvf nacos-server-2.3.2.tar.gz

3) MySQL 연동 설정

기본 설정만으로는 시작되지 않으므로, 데이터베이스 연동이 필요합니다. MySQL 설치가 되어 있지 않다면, 다음 문서를 참조하세요:

CentOS 7에서 MySQL 8 설치 가이드 (완벽히 성공 가능)

Nacos 설치 디렉터리의 conf/application.properties 파일을 열고 다음과 같이 수정합니다:

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://192.168.1.100:3306/nacos_db?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos_user
db.password.0=secure_password

IP, DB 이름, 사용자명, 비밀번호는 실제 환경에 맞게 변경해야 합니다.

설정 후 저장 후 종료합니다.

중요: Nacos 2.x 버전부터 gRPC 통신 방식이 도입되며, 추가 포트 2개가 필요합니다. 이 부분은 이후 IDE 실행 시 오류 발생 원인이 됩니다.

  • 8848: 클라이언트와의 기본 통신 포트
  • 9848: gRPC 통신 포트 (클러스터 모드 또는 고성능 통신 필요 시)
  • 9849: Raft 동기화를 위한 내부 통신 포트 (클러스터 운영 시 필수)

서버의 방화벽을 통해 해당 포트들을 개방해야 합니다.

4) Nacos 시작

설정 완료 후, bin 디렉터리로 이동하여 단일 인스턴스 모드로 시작합니다:

sh startup.sh -m standalone

5) 서비스 상태 확인

sh status.sh

6) 권한 문제가 발생할 경우

필요 시 관리자 권한으로 전환:

sudo -i

태그: nacos linux MySQL java JDK

6월 17일 22:46에 게시됨