리액티브 선언문

1 개요[ | ]

The Reactive Manifesto
리액티브 선언문
응답성 Responsive
  • "시스템이 되도록 즉각 응답하는 것"
  • 사용자 편의성과 유용성의 기초 + 문제를 신속하게 탐지, 효과적 대처 가능
  • 신속하고 일관성 있는 응답시간을 제공하고, 신뢰할 수 있는 상한선을 설정하여 일관된 서비스 품질을 제공
  • 일관된 동작은 오류 처리를 단순화하고, 일반 사용자에게 신뢰 조성, 새로운 상호작용 촉진
탄력성 Resilient
  • "시스템이 장애가 나도 응답성을 유지하는 것"
  • 고가용성 시스템, 미션 크리티컬 시스템에 국한된 것이 아니다.
  • 탄력성이 없는 시스템은 장애가 발생할 경우 응답성을 잃는다.
  • 탄력성은 복제, 봉쇄, 격리, 위임에 의해 실현된다.
  • 장애는 각각의 구성요소에 포함되며 구성요소들은 서로 분리되어 있기 때문에 이는 시스템이 부분적으로 고장이 나더라도, 전체 시스템을 위험하게 하지 않고 복구할 수 있도록 한다.
  • 각 구성요소의 복구 프로세스는 다른(외부의) 구성요소에 위임되며 필요한 경우 복제를 통해 고가용성을 한다.
  • 구성요소의 클라이언트는 장애를 처리하는 데에 압박을 받지 않는다.
유연성 Elastic
  • "작업량이 변하더라도 응답성을 유지하는 것"
  • 입력 속도의 변화에 따라 이러한 입력에 할당된 자원을 증가·감소시켜 변화에 대응한다.
  • 시스템에서 경합이나 중앙집중적 병목이 없도록 설계하여, 구성요소를 샤딩하거나 복제하여 입력을 분산시키는 것
  • 실시간 성능을 측정하는 도구를 제공하여 응답성 있고 예측 가능한 규모 확장 알고리즘을 지원한다.
  • 하드웨어 상품 및 소프트웨어 플랫폼에 비용 효율이 높은 방식으로 유연성을 제공한다.
메시지 구동 Message Driven
  • "비동기 메시지 전달에 통해 구성요소 간 '느슨한 결합, 격리, 위치 투명성'을 보장하는 경계 형성"
  • 장애를 메시지로 지정하는 수단 제공
  • 명시적인 메시지 전달은 시스템에 메시지 큐를 생성하고, 모니터링하며 필요시 배압을 적용함으로써 유연성을 부여하고, 부하 관리와 흐름제어를 가능하게 한다.
  • 위치 투명 메시징을 통신수단으로 사용하여 단일 호스트든 클러스터든 동일한 구성과 의미로 장애를 관리할 수 있다.
  • 논블로킹 통신은 수신자가 활성화가 되어 있을 때만 자원을 소비하므 시스템 부하를 낮춘다.

Reactive-traits.svg

2 같이 보기[ | ]

3 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}