- MSA 와 SpringCloud
- MSA(Micro Service Archetecture) 란?
- 중요 기능들을 작게 나누어, 독립적인 모듈 실행이 가능하도록 하자. (Transaction 단위로 나눔을 추천함)
- 각 모듈의 추가,수정,배포,복구 등등이 쉽고~ 해당 장애의 영향력을 최소화 할 수 있다.
- 묘듈간에는 RestAPI, JSON등을 통해서, 통신을 하는 식.
- Spring Cloud
- 가장 보편적인 분산시스템 패턴으로 프로그래밍을 할 수 있도록 제공.
- SpringBoot + Library(잡다한)
- 설정 자동화를 통하여, 각종 Cloud-Flatform에 쉽게 배포한다. (지속적인 배포가 용이)
- Eureka는 MSA를 구성함에 있어서, 각 모듈의 Look-Up 및 Scale-Status 등을 관리하는 Health-Check 모듈.
- SpringCloud Stream
- (외부시스템과 통신가능한) Application을 빠르게 개발 할 수 있는 경량의 Event기반 MSA Framework.
- 즉, Message기반 Application을 개발 위해~ Rabbit-MQ 및 Kafka 와 같은 메세지브로커와 쉽게 바인딩.
- SpringBoot 기반이라서, 간편하고 직관적인 어노테이션 제공.
- (예 : @EnableBinding, @StreamListener, @InboundChannelAdapter, @ToSend)
- 개발자는 메세지브로커 신경쓸 필요 없이, 비즈니스로직에만 집중을 할 수 있다.
- 비동기 Messaga-Driven
- 느슨한 결합으로, 분산시스템 및 MSA간 협업에 있어서 상호 의존성을 배제 할 수 있다.
- (동기 API 경우, 상대 성능 및 상태에 직접적인 영향을 받아~ Exception 및 FailBack 처리가 필수적...)
- 상호 시스템의 성능 및 상태에 영향을 받지 않는다.
- 상호 시스템간 서로가 알 필요없이, 정보 교환이 가능하다. (Pub-Sub만 잘 하면 됨)
- 상호 시스템은 각자 독립적으로 서버 증설 및 삭감을 할 수 있다.
- MSA(Micro Service Archetecture) 란?
- ...
-끝-
'랭귀지&프레임웤' 카테고리의 다른 글
Python 이란? (0) | 2019.11.06 |
---|---|
STS 개발 (0) | 2019.11.06 |
Spring Batch 란? (0) | 2019.11.06 |
Spring 개론 (0) | 2019.10.30 |
자바 메모장 (0) | 2019.10.23 |