개요
Mricroservice는 수많은 장점을 가지고 있지만 구축하는건 생각보다 쉽지 않습니다. JHipster와 함께 MSA구축을 하면 한층 쉽게 다가갈수 있다고 생각 되어 글을 작성 하게 되었습니다.
본 글에서는 크게
- 개발 MSA 환경 구축
- Docker Compose를 활용한 Service Mash
나뉘며 프로젝트 생성부터 Microservice Gateway와 Microservice Application생성과 더불어 상용 배포를 위한 Docker Compose 설정까지 알아 보겠습니다.
개발 MSA 환경 구축
- Gateway 생성
- Registry 실행
- Gateway 실행
- Application 생성
- Application 실행
여기에선 이 구조로 프로젝트를 생성 해 보겠습니다.
Gateway 생성
Gateway를 생성한 뒤 먼저 JHipster Registry를 실행한다.
1 | // Gateway로 프로젝트 생성 |
1
2// Registry 실행
$ docker-compose -f src/main/docker/jhipster-registry.yml up
JHipster Registry는 Spring Cloud Config
와 Eureka Server
로 이루어져 있으며 Microservice의 Config관리 및 서버 발견 역할을 한다.
registry가 셋팅 된후에 gateway를 실행 시킨다.
1 | // Gateway 실행 |
Application 생성
1 | // Application로 프로젝트 생성 (member, wallet 각각 실행) |
생성 후 별도의 비즈니스로직 추가 후 애플리케이션을 실행 하시면 됩니다.
1 | // Gateway 실행 |
개발 MSA 환경 실행
지금까지 잘 따라오셨으면
- Registry
- Gateway
- Application
3개의 서비스들이 잘 실행 되어 있고 Gateway에서 각각의 Application의 API를 호출하면 정상적으로 동작하는걸 확인 하실 수 있습니다.
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-compose로 서비스들을 묶은 뒤 실행만 하면 됩니다.1
2$ cd wallet-app-compose
$ jhipster docker-compose
생성을 완료 한 후 실행을 해봅니다.1
$ docker-compose up -d
이외 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
- 컨테이너 삭제
자세한 사용법은 명령어 뒤에 --help
를 넣어 확인 바랍니다.
JHipster Console도 설치 하여 MSA관리를 수월할 수 있게 도와 줍니다.