Web

Spring boot MSA 설계 (6) 서비스..레지스트리... 누구세요..

송코딩 songcoding 2024. 7. 5. 07:59

안녕하세요 여러분!

김송아입니다.

 

 

 

지난 시간 백엔드 서비스를 쪼개는 일을 해봤죠!!

다들 빌드에 대해선 좀 더 공부해보셨나요!?ㅎㅎ (아직 질문은 따로 없으셔서, 필요하시면 언제든!)

 

 

그럼 바로~ 이어서 가봅니다!

지난 아티클에서 확인했듯이 (아래 링크 참고)

 

Spring boot MSA 설계 (5) 멀티 모듈 객체 갖다쓰기 (build 설정)

안녕하세요 여러분!금(요일의 김)송아입니다.   오늘 날씨가 너무너무 좋네요!!🌿🌿🌿내일부터 계~속 비 온다던데, 그 전에 이렇게 기분 좋은 하늘 보여주는 건 반칙인 거 아닌가요ㅋㅋㅋ  

songacoding.tistory.com

 

의존하는 서비스의 객체는 사용이 가능하지만, 컨트롤러는 사용이 불가합니다!

즉, 서로 통신을 할 때에는 컨트롤러가 아니라 다른 무언가를 이용해야 한다는 뜻입니다🔥

 

 

 

🤔 Q. 그럼 다른 서비스에게 필요한 일을 요청하기 위해서는,, 어떻게 해야할까요?

 

- 외부에서 들어오는 요청은 게이트웨이가 하면 되고,

- 내부 모듈 간 통신은 메세지 브로커를 사용할 수 있습니다!

  (ps. 메세지 브로커는 다음 아티클 이야기~~)

 

 

뭐.. 게이트웨인지 메세지 브로커인지 통신을 하려면 일단

각 모듈(서비스)의 정보(IP, Port)를 알아야할 것 같은데,, 대체.. 어떻게 알고 보내야 할까요?🙉

 

 

1. 수동? 

가능은 합니다. 하지만 만약 수정된다면, 전부 수동으로 업데이트 해야 할 것....

같은데 괜찮으시겠어요...?

 

ㅋㅋㅋㅋ괜찮으시겠어요...? 곧 마감임^^ @롤플레이

 

 

 

MSA는 사실상 Scale-Out의 장점이 큰 데, 매번 수동으로 업데이트한다는 건 조~금 목적에 안 맞는 것 같죠?

 

 

💡여기서 잠깐!

   Scale-Out 이란? 서버를 추가하여 시스템을 확장하는 것을 말합니다. 

   비슷한 용어로 Scale-Up : 기존 서버 사양을 업그레이드 하는 뜻을 가지는 용어도 있어요!

 

 

2.  자동 (책임 지우기ㅎㅎㅎㅎ)

그래서 자동 방법이 있습니다!

Service Registry를 만드는 방법이에요!

 

 

서비스의 주소록(Service Registry)을 만들어 서비스의 위치를 저장 및 관리를 전담시키는 겁니다.

✔️ 외부에서 오는 요청에 따른 서비스의 주소가 필요할 때!
✔️ 내부 서비스 간 통신에서 다른 서비스의 주소가 필요할 때!

 

모두 Service Registry에게 물어보고, 원하는 정보를 얻어 해결할 수 있을 겁니다!

 

💡Registry(레지스트리)란?

쉽게 말해서 각종 설정 값과 정보를 담고 있는 데이터베이스입니다.
넓은 의미로 정리해보면, 소프트웨어들에 대한 정보와 설정 값을 들고 있는 일종의 주소록(데이터베이스)이라고 보면 할 수 있겠네요!

 

 

Registry를 적용하는 방법은 크게 2가지가 있습니다.

 

 

1️⃣ Server-Side Discovery

: Load Balancer(추상화)를 Service Registry(구현체) 앞단에 세우고

  우리는 Load Balancer랑 얘기하는 겁니다!

  즉, Load Balancer Service Registry 에게 대신 질의해주고, 통신도 해주는 거에요!

 

 

2️⃣ Client-Side Discovery

: Service Registry 구현체를 직접 사용하는 겁니다!
: 
대표 구현체(라이브러리)로는 스프링의 Spring Cloud Netflix Eureka 를 들 수 있습니다!

 

 

 

여러분들은 둘 중 어떤 방법을 선택하실 것 같나요?

만약 선택하셨다면 그 이유는 무엇인가요?

 

분명 모든 선택에는 이유가 분명해야겠죠!

그 이유는 그 방법의 장/단점이 될 수도 있을 거구요🙈

 

 

선택하셨다면 그 이유와 함께 댓글을 남겨주세요!!

 

-

 

그럼, 축축한 장마 기간에 기대하지 못한 날씨를 만날때 그 기쁨으로!

주말 잘 보내시길 바랍니다😊

 

 

감사합니다.

김송아 드림