인터넷에 떠 있는 정보들을 수집하여 Spring Cloud 를 구축하였다.
여기저기 사이트를 보면 이론적인 설명은 많은데,
실제 구동되는 소스는 보지 못했다. ( 내가 못찾았을 수도 있고...)
개발된 소스를 공개하지는 못하겠고 ^^
서비스의 완성된 모습만 공개 한다.
. 인증은 OAuth2, JWT
. cross browsing 해결
. web server는 nginx 사용 (동시접속 처리에 특화 restful API 사용시 유리)
1. 서버 준비 (vultr : 개발 테스트 할때 이것 만한 게 없다. / 물론 운영할 때도 불만 없다. )
2. 디렉토리 구성
logs 폴더는 각 MSA서비스 단위로 log가 쌓이도록 함
was 폴더는 MAS가 들어 있음.
web 폴더는 UI 관련 파일(html, js, css)가 들어 있음.
3. 각각의 MSA(MicroService Architecture)는 war형태로 존재하며
아래 이미지와 같이 start_eureka.sh (쉘) 실행파일을 만들어 놓는다.
oauth 폴더는 인증 MSA가
sgw 폴더는 gateway MSA가
user 폴더는 guest사용자와 member 사용자의 API가 존재 한다.
참고로 oauth MAS는 JPA를 활용하여 리소스를 최대한 줄이고,
DB Table도 인증처리를 위한 최소한의 정보만을 가지고 있다. (이 부분은 User가 많은 경우 고려해야 할 부분이다.)
4. 서비스 실행
차례대로 Euraka -> Gateway -> Sercurity -> User Service API MSA(MicroService Architecture)를 실행한다.
5. 서비스 확인 - Euraka
Gateway, OAUTH(Security), User service API가 등록된 것을 확인.
6. nginx 실행 - Gateway에 등록된 OAUTH(Security), User service API가 잘 동작하는지 테스트
web server의 Port는 8999로 설정되어 있으며, Gateway는 9001로 되어 있다.
oauth(Security) Port는 9002번 이지만, Gateway를 이용하여 9001로 접속이 가능하도록 처리되어 있다. 사용자 로그인을 클릭하면...정상적으로 JWT( JSON Web Token)을 생성(인증)한다.
이미지에서 board service Test는 Guest 전용으로 인증없이 사용 가능한 API테스트 이며
member service Test는 Member 전용으로 만약 기간이 만료된 Token 이면 제 인증을 받아야 한다.
제 인증은 Refresh Token을 이용한다.
'개인 프로젝트 > Temeet' 카테고리의 다른 글
Temeet(테니스 관련 정보 및 상품 정보) 앱 개발 프로젝트 (0) | 2023.04.03 |
---|---|
테니스 관련 Web, 모바일 App 만들기 (0) | 2023.02.17 |