Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

마이크로서비스간 통신

마이크로서비스간 통신

Communication Types

  • Synchronous HTTP communication - 동기식 HTTP 통신
  • Asynchronous communication over AMQP - AMQP를 통한 비동기 통신
    • img.png
  • Rest Template
    • img_1.png

RestTemplate

Users Service -> Order Service

  • img.png
  • img_1.png
  • img_2.png
  • img_3.png
  • img_4.png

Feign Web Service Client

  • FeignClient -> HTTP Client
    • REST Call을 추상화 한 Spring Cloud Netflix 라이브러리
  • 사용방법
    • 호출하려는 HTTP Endpoint에 대한 Interface를 생성
    • @FeignClient 선언
  • Load balanced 지원

Feign Client 적용

  • Spring Cloud Netflix 라이브러리 추가
  • @FeignClient Interface 생성
  • img.png
  • img_1.png

Feign Client 생성

  • UserServiceImpl.java에서 Feign Client 사용
  • img_2.png
  • img_3.png

Feign Client에서 로그 사용

  • img_4.png
  • img_5.png

FeignException

  • img.png
  • FeignException 처리
    • img_1.png

FeignErrorDecoder

  • ErrorDecoder 구현
    • img_2.png
  • Application 클래스에 ErrorDecoder 빈 등록
    • img_3.png
  • Properties 파일적용
    • img_4.png

Multiple Orders Service

  • Orders Service 2개 기동
  • Orders 데이터도 분산 저장 -> 동기화 문제
    • img.png
    • 하나의 Database 사용
      • img.png
    • Database간의 동기화
      • img.png
    • Kafka Connector + DB
      • img.png

© 2020. All rights reserved.

SIKSIK