JHipster MSA 구축

개요

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

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

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

개발 MSA 환경 구축

MSA diagram

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

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

Gateway 생성

Gateway를 생성한 뒤 먼저 JHipster Registry를 실행한다. [code lang=bash] // Gateway로 프로젝트 생성 $ cd gateway $ jhipster [/code] gateway_generate [code lang=bash] // Registry 실행 $ docker-compose -f src/main/docker/jhipster-registry.yml up [/code] registry_run JHipster Registry는 Spring Cloud ConfigEureka Server로 이루어져 있으며 Microservice의 Config관리 및 서버 발견 역할을 한다. registry가 셋팅 된후에 gateway를 실행 시킨다. [code lang=bash] // Gateway 실행 $ ./gradlew [/code] gateway_run

Application 생성

[code lang=bash] // Application로 프로젝트 생성 (member, wallet 각각 실행) $ cd member $ jhipster [/code] member_generate wallet_generate 생성 후 별도의 비즈니스로직 추가 후 애플리케이션을 실행 하시면 됩니다. [code lang=bash] // Gateway 실행 $ ./gradlew [/code]

개발 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 logo Docker Compose는 Multi-Container 정의 툴로써 YAML형식의 파일로 작성 하며, 여러 개의 Docker Container를 한번에 생성 하실 수 있습니다. Docker Compose를 실행하기전 각각의 애플리케이션의 Dokcer Image가 필요하여 아래의 명령어를 실행 해줘야 합니다. [code lang=bash] $ ./gradlew bootWar -Pprod buildDocker [/code] docker images로 Docker Image를 확인 하실 수 있습니다. [code lang=bash] $ docker images [/code] docker_images 필요한 모든 준비가 완료 되었습니다. 이제 docker-compose로 서비스들을 묶은 뒤 실행만 하면 됩니다. [code lang=bash] $ cd wallet-app-compose $ jhipster docker-compose [/code] docker-compose_generate 생성을 완료 한 후 실행을 해봅니다. [code lang=bash] $ docker-compose up -d [/code] docker-compose_up docker-compose 이외 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


  Reprint please specify: Ahea Team Study Blog JHipster MSA 구축

 Previous
[초급편] JAVA HIPSTER 공부하기 [초급편] JAVA HIPSTER 공부하기
프로그래밍 초급자가 바라본 JAVA HIPSTER - “아~ 이건 언제 다 공부하냐” 1. 가장 먼저 한 일 - “https://www.jhipster.tech" 사이트 둘러보기 (의문을 가지다) : “J
2018-08-17
Next 
JHipster란? JHipster란?
JHipster란? 간단히 정의 하면 자바 기반 생성(generate) 개발 플랫폼 이라고 말씀 드릴 수 있습니다. 기존 뛰어난 생산성으로 흥한 개발 플랫폼인 Ruby의 Ruby on Ralse나 Node.js의 M
2018-07-29 Ahea
  TOC