spring/cloud
-
Spring Cloud Gatewayspring/cloud 2021. 4. 28. 17:33
배경 클라이언트가 서비스A를 이용하기 위해 요청을 보낼 때 어떻게 처리해야할까? 서비스A의 IP 또는 URL로 HTTP 통신을 하면 된다. 다만, 서비스A가 동일한 서비스를 제공하는 서로 다른 IP를 가진 클러스터로 있다면 어떡할까? 매 요청마다 서비스A의 클러스터 중 어떤 서비스IP를 이용할지 결정하는 알고리즘이 필요할 것이다. 이 방식은 클라이언트와 서버의 의존도를 높이게 되고 각 서버를 마이크로 단위로 보기 힘들게 한다. 이러한 둘 간의 의존도를 낮춰줄 서버가 gateway서버다. 클라이언트는 서비스A의 물리적인 IP에 의존하지 않고 단지 논리적인 서비스A를 게이트웨이에 요청한다. 그럼 실제 어떤 IP로 서비스A를 요청할지 결정하는 건 gateway서버가 되는 것이다! 초간단 설정 의존성 추가 ap..
-
Spring Cloud Config Server 구축spring/cloud 2021. 4. 28. 16:11
배경 애플리케이션에서 설정정보라하면 배포 환경마다 달라질 수 있는 모든 값이다. 12factor에 따르면 이러한 설정정보는 코드에서 분리하여 따로 관리하길 권장하고 있다. 코드에 종속된 설정정보라면 설정정보 변경 시 전체코드 재빌드가 필요하니 유지보수성이 떨어진다. 이를 극복하기 위해 각 프로젝트마다 application.yml을 따로 두어 설정 정보를 관리하면 하드코딩으로 설정정보를 입력하는 것보다 훨씬 유지보수성이 좋아질 것이다. 다만, 이러한 방식은 한 애플리케이션에서 관리해야할 프로젝트가 여럿인 경우에 유지보수성이 떨어지게 된다. spring cloud config를 이용하면 config자체도 하나의 서버로써 설정정보를 동적으로 바꾸고 관리할 수 있다. 또한 각 프로젝트 내에서 설정 정보를 관리하..
-
Service Discovery개념 및 netflix eureka 실습spring/cloud 2021. 4. 7. 13:00
배경 프로젝트에 적용한 기술을 공부하고 다듬는 것도 꾸준히 해야할 일이지만 새로운 기술을 배울 때만큼 열정적이지는 못한 것 같다. MSA아키텍처를 공부해야하긴 하고 미루고 미루다 인프런의 좋은 강의를 만난 것 같다. Service Discovery란? 트래픽이 증가하면서 동일한 서비스를 제공하는 customer service를 증설했다고 하자. 이제 서비스를 이용하는 client는 여러 서버 중 적절히 하나를 골라 서비스를 요청하면 된다. 이때 서버를 고르는 작업을 따로 registry로 분리한 게 service discovery라고 생각하면 될 것 같다. client는 단지 service discovery에게 어떤 서버에게 서비스를 요청할지 물어보기만 하면 된다(Lookup) 이때 service dis..