-
클라우드 마이크로 서비스 - Spring CloudInfra/클라우드 2023. 12. 12. 13:08
Spring Cloud
"By 2017, at least 70% of new enterprise Java applications won't be deployed on traditional app servers"
자바 엔터프라이즈 어플리케이션 의 70%이상은 기존의 앱 서버에서 작동되지 않을 것이다.
- Gartnerhttps://spring.io/projects/spring-cloud
Main Project
- Spring Cloud Config
- Spring Cloud Netfilx
- Spring Cloud Security
- Spring Cloud Sleuth
- Spirng Cloud Starters
- Spring Cloud Gateway
- Spring Cloud OpenFeign
Spring Cloud
- Centerlized configuration management
- Spring Cloud Config Server
다양한 마이크로 서비스에서 사용할 수 있는 설정 정보를 CloudConfgServer를 통해서 외부의 저장소에 환경설정 정보를 집어 넣을 수 있다. 환경설정 정보에는 Gateway IP, 서버가 가지고 있어야 하는 token에 대한 기본 정보 등과 같은 것들이 있다.
각각의 마이크로 서비스에서 CloudConfigServer에 해당하는 설정정보를 참조해서 사용하는 방식이다. 그러면 설정정보에서 변경된 내용이 생긴다고 하더라도 마이크로 서비스를 다시 빌드하고 재배포할 필요 없이 외부 저장소(Git)에 있는 정보만 변경하면 된다.
- Location transparency
- Naming Server(Eureka)
서비스의 등록과 위치 정보확인 검색과 같은 서비스를 이용하기 위해서 사용
- Load Distribution(Load Balancing)
- Ribbon(Client Side)
- Spring Cloud Gateway
서버에 들어 왔던 요청 정보를 분산하기 위한 용도로 사용 한다.
외부에 있던 클라이언트 정보라던가 서비스 정보가 Gateway를 통과를 해서 가지고 있는 다른 마이크로 서비스로 진입점을 옮겨간다. 마이크로 서비스 뿐만아니라 Gateway Service도 Naming Service에 등록을 해놓고 위치를 검색하는 용도로 사용하면 된다.
-Easier REST Client
- Feign Client
각각의 마이크로 서비스간의 통신을 위해서 RestTemplate나 Feign Client(페인 클라이언트) 같은 것들을 활용하게 될 것이다.
- Visibility and monitoring
- Zipkin Distributed Tracing
- Netfilix API gateway
시각화와 모니터링을 위해서는 분산 추적을 위한 Zipkin(집킨)이라던가 외부 모니터링 서비스를 연계해서 사용한다.
- Fault Tolerance
- Hystrix
마지막으로 장애가 발생했을 경우에 그런 것들을 빠르게 복구하기 위한 회복성 패턴이라는 것이 있는데 이 부분을 위해서는 넷플릭스에 있는 히스트릭스라는 제품을 사용해서 서비스를 구현해 볼계획이다.
[출처 - Spring Cloud로 개발하는 마이크로 서비스 애플리케이션, 저 Dowon Lee]
'Infra > 클라우드' 카테고리의 다른 글
클라우드 마이크로 서비스 - Eureka Service Discovery (0) 2023.12.12 클라우드 마이크로 서비스 - Spring Cloud Netflix Eureka (0) 2023.12.12 클라우드 마이크로 서비스 - Microservice Architecture Structures (0) 2023.12.12 클라우드 마이크로 서비스 - SOA vs MSA (0) 2023.12.12 클라우드 마이크로 서비스 - Microservice Architecture (1) 2023.12.11