(스프링 클라우드 설명은 짧을 예정)
eureke, feign 등 이미 작성했거나 앞으로 작성할 글들이 모두 Spring Cloud와 관련이 있으므로 짧게나마 적어본다.
스프링 클라우드는 분산 시스템에서 공통적인 기능을 제공해줌으로써 좀 더 빠르고 편하게 MSA 구조를 구현해 나가는 데에 도움을 준다.
스프링 클라우드는 MSA 구성을 지원하는 스프링 부트 기반의 프레임워크이다.
개발 바닥에서 유명해진지 오래인 MSA가 무엇인지는 다들 알고 있을거라고 생각한다.
MSA의 구조를 보면 다양한 컴포넌트가 존재한다.
유레카는 이미 설명을 했었고, 앞으로 각 컴포넌트의 설명과 실습을 이어갈 생각인데,, 아무튼!
MSA 구조를 이루기 위해선 효과적인 클라이언트와 서버간의 통신도 필요하고, 인증은 어떻게 할지, 로깅은 어떻게 할지, 또 게이트웨이는.... 이런 여러 고민이 스친다.
이 구조를 명쾌하게 해결해줄 수 있는게 Spring Cloud 다.
https://spring.io/cloud <-- Spring cloud
여기 들어가면 각 컴포넌트에 대한 제안을 만나볼 수 있다.
각 컴포넌트에 대한 자세한 설명은 각각의 게시글을 통해 이루어질 예정이므로, 여기선 간단히 요약한다.
MSA에 대한 기본적인 이해가 있다는 가정하에..
마이크로 서비스들의 정보를 기록해둘 수 있도록 도와주는 Eureka
마이크로 서비스들 사이의 통신을 비동기적으로 도와주는 메세지 큐 RabbitMQ, Kafka 등
API 게이트웨이 역할로 라우팅을 수행할 Zuul, Spring Cloud Gateway
환경설정을 함께 관리하기 위한 Spring Config.
로드밸런서가 되어줄 Ribbon.
더 효과적인 통신을 위한 Feign
트레이싱에 쓰이는 Sleuth 와 zipkin.
모니터링까지....등등
결국 Spring Cloud가 적용된 형태의 MSA 구조는 위의 이미지와 같다.
각 컴포넌트에 대한 이해까지 생기면 저 이미지에서 Eureka가 하는 것, Config가 하는 것 등 단번에 이해가능 할 것이다.
그 설명은 앞으로 쭉...!