JHipster MSA 구축

  1. 1. 개요
  2. 2. 개발 MSA 환경 구축
    1. 2.1. Gateway 생성
    2. 2.2. Application 생성
    3. 2.3. 개발 MSA 환경 실행
  3. 3. Docker Compose를 활용한 Service Mash

개요

Mricroservice는 수많은 장점을 가지고 있지만 구축하는건 생각보다 쉽지 않습니다. JHipster와 함께 MSA구축을 하면 한층 쉽게 다가갈수 있다고 생각 되어 글을 작성 하게 되었습니다.

본 글에서는 크게

  • 개발 MSA 환경 구축
  • Docker Compose를 활용한 Service Mash

나뉘며 프로젝트 생성부터 Microservice Gateway와 Microservice Application생성과 더불어 상용 배포를 위한 Docker Compose 설정까지 알아 보겠습니다.

개발 MSA 환경 구축

MSA diagram

  • Gateway 생성
    • Registry 실행
    • Gateway 실행
  • Application 생성
    • Application 실행

여기에선 이 구조로 프로젝트를 생성 해 보겠습니다.
directory

Gateway 생성

Gateway를 생성한 뒤 먼저 JHipster Registry를 실행한다.

1
2
3
// Gateway로 프로젝트 생성
$ cd gateway
$ jhipster

gateway_generate

1
2
// Registry 실행
$ docker-compose -f src/main/docker/jhipster-registry.yml up

registry_run
JHipster Registry는 Spring Cloud ConfigEureka Server로 이루어져 있으며 Microservice의 Config관리 및 서버 발견 역할을 한다.

registry가 셋팅 된후에 gateway를 실행 시킨다.

1
2
// Gateway 실행
$ ./gradlew

gateway_run

Application 생성

1
2
3
// Application로 프로젝트 생성 (member, wallet 각각 실행)
$ cd member
$ jhipster

member_generate
wallet_generate
생성 후 별도의 비즈니스로직 추가 후 애플리케이션을 실행 하시면 됩니다.

1
2
// Gateway 실행
$ ./gradlew

개발 MSA 환경 실행

지금까지 잘 따라오셨으면

  • Registry
  • Gateway
  • Application

3개의 서비스들이 잘 실행 되어 있고 Gateway에서 각각의 Application의 API를 호출하면 정상적으로 동작하는걸 확인 하실 수 있습니다.

registry_check
gateway_check
gateway_app_check_1
gateway_app_check_2

swagger를 통해 Gateway에서 각각의 member와 wallet Service의 API를 확인하고 개발 할 수 있습니다.

Docker Compose를 활용한 Service Mash

Docker Compose를 실행하기전 각각의 애플리케이션의 Dokcer Image가 필요하여 아래의 명령어를 실행 해줘야 합니다.

1
$ ./gradlew bootWar -Pprod buildDocker

docker images로 Docker Image를 확인 하실 수 있습니다.

1
$ docker images

docker_images

필요한 모든 준비가 완료 되었습니다. 이제 docker-compose로 서비스들을 묶은 뒤 실행만 하면 됩니다.

1
2
$ cd wallet-app-compose
$ jhipster docker-compose

docker-compose_generate

생성을 완료 한 후 실행을 해봅니다.

1
$ docker-compose up -d

docker-compose_up

이외 compose사용시 유용한 명령어들 입니다.

  • docker-compose up -d - 컨테이너들 생성과 동시에 실행
  • docker-compose down - 컨테이너들 종료와 동시에 삭제
  • docker-compose start - 컨테이너들 실행
  • docker-compose stop - 컨테이너들 종료

docker로 실행 시 몇가지 유용한 명령어를 정리 해 보았습니다.

  • docker stats - 컨테이너의 cpu, memory, I/O 등
  • docker images - 이미지 확인
  • docker ps - 컨테이너 확인
  • docker rmi - 이미지 삭제
  • docker rm - 컨테이너 삭제

docker_stats

자세한 사용법은 명령어 뒤에 --help 를 넣어 확인 바랍니다.

JHipster Console도 설치 하여 MSA관리를 수월할 수 있게 도와 줍니다.
console_dashboard
console_log