본문 바로가기

좋아하는 것_매직IT/10.microservice

2.마이크로서비스, 리액티브란 무엇일까요?

반응형

리액티브프로그래밍

  • 마이크로서비스를 구현하는 한 가지 방법.

 

리액티브 정리

  • 반응성(Responsive) : 시스템이 최대한 빨리 응답함을 의미함.
  • 복원력(Resilience) : 일부분이 문제가 발생하더라도 시스템을 사용할 수 있음.
  • 탄력성(Elastic)    : 시스템은 추가 자원을 사용해 다양한 레벨의 부하를 처리할 수 있음. 로드가 피크가 된 후 자원이 다시 해제됨.
  • 메시지 기반(Message Driven) : 시스템에서 비동기 통신(메시지기반)을 사용함. 

 

서버 애플리케이션 비교

  • 기존 vs 리액티브
    • 기존
      • 일반적으로 들어오는 요청을 특정 스레드에서 처리함.
      • 해당 요청이 데이터베이스에 요청해야 한다면 요청 결과가 도착할 때까지 스레드는 블로킹됨.
      • 각 네트워크 연결에 대해 병렬로 처리되는 각 요청에 대해 스레드가 제공되야 함.  
    • 리액티브
      • 애플리케이션은 이벤트에만 반응함.
      • I/O 인스턴스를 기다리고 있기 때문에 블로킹되면 안됨.
      • 인입된 HTTP 요청과 같은 이벤트를 기다림.
      • 요청이 도착하면, 애플리케이션은 로직을 실행한 다음 어느 시점에 데이터베이스로 호출을 전송함.
      • 애플리케이션은 데이터베이스 호출 결과를 기다리지 않고, HTTP 요청 처리를 일시 중단.
      • 데이터 베이스 호출 결과 이벤트가 도착하면, HTTP 요청 처리가 다시 시작됨.
      • 오직 하나의 스레드만 필요, 스레드는 현재 이벤트를 처리함.

 

리액티브 프로그래밍이 마이크로서비스에서 반드시 필요한 것은 아님.

  • 마이크로 서비스를 리액티브 프로그래밍으로 구현할지에 대한 것은 각 마이크로서비스마다 다를 수 있음.  

 

참고 사이트

728x90
300x250