반응형

reactive 4

HotPublisher, ColdPublisher

Hot, Cold Publisher Cold Publisher ? Reactive streams 예시 코드처럼 subscribe가 시작되는 순간 데이터를 생성해서 전송하는 케이스를 Cold Publisher라고 한다. Cold Publisher는 파일 읽기, 웹 API 요청 등 subscriber에 따라 독립적인 데이터 스트림을 제공한다. Hot Publisher ? subscriber가 없더라도 데이터를 생성하고 stream에 push하는 publisher이다. 트위터 게시글 읽기, 공유 리소스 변화 등 여러 subscriber에게 동일한 데이터를 전달한다. ColdPublisher 구현 public class SimpleColdPublisher implements Flow.Publisher{ // S..

Reactive_streams

Reactive streams Reactive 시스템을 구성하기 위해서는 Reactive Programming을 사용해야 하고 Reactive Programming을 가장 쉽게 구현할 수 있게 해주는게 Reactive streams다. Reactive stream의 구조 데이터 혹은 이벤트를 제공하는 Publisher 데이터 혹은 이벤트를 제공받는 Subscriber 데이터 흐름을 조절하는 Subscription Publisher는 Subscription을 Subscriber에게 전달하고, Subscription 내부에는 데이터를 얼마나 받고, 데이터를 그만 받을지를 설정할 수 있다. 이 Subscription으로 Subscriber는 Publisher에게 데이터를 더 요청하거나, 데이터를 그만 받겠다를..

Reactive programming

일반적인 프로그래밍 패러다임 Reactive programming이 아닌 서비스의 패러다임은 구성 요소 혹은 객체는 다른 객체를 직접 호출하고 데이터를 받아야 한다. 이 과정에서 경계가 무너지고 구성 요소의 독립적인 실행이 보장되지 않음며 복원력과 유연성 모두 위협을 받게 된다. 이러한 일반적인 프로그래밍에 Reactive manifesto를 대입해서 생각해보면? 동기 stream callee는 caller에게 응답이 아닌 stream을 제공하여, callee는 각각의 값을 stream을 통해서 값을 전달한다. 그리고 caller는 해당 stream을 collect 하여 이를 처리한다. 비동기 future callee는 caller에게 응답이 아닌 future를 제공한다. 위와 다르게 stream이 아니..

Reactive manifesto

Reactive manifesto ? Reactive manifesto란 Reactive 시스템을 만들기 위해 갖추어야할 조건들을 제시하는 일종의 선언문이다. 이 선언문에는 4 가지의 핵심 가치를 제시하고 있다. 핵심 가치는 Responsive (응답성) 응답성을 만족하려면 문제를 신속하게 탐지하고 효과적으로 대처할 수 있어야하고, 신속하고 일관성 있는 응답 시간을 제공해야 하며 신뢰할 수 있는 상한선을 설정하여 일관된 서비스 품질을 제공해야 한다. 이러한 요구사항을 만족한다면 사용자에게 즉각적으로 응답되는 서버를 제공할 수 있다. 그리고 오류 처리를 단순화하고 사용자 측면에서 편의성과 유용성의 기초가 된다. 응답성은 일관성 있게 ! 응답을 빠르게 내려줄 수 있게 시스템을 구성해야 한다! Resilien..

반응형