Cold sequence_Hot Sequence

KKH_94·2023년 8월 30일
0

Reactive_Programming

목록 보기
7/18

"Hot sequence"와 "Cold sequence"는 리액티브 프로그래밍에서 데이터 스트림의 두 가지 주요 유형을 나타내는 용어입니다. 이 두 가지 유형은 데이터의 생성 및 소비 방식에서 차이가 있습니다.

Cold Sequence (Cold Publisher)

Cold sequence는 데이터 스트림의 일반적인 형태입니다.

각 Subscriber가 해당 스트림을 구독할 때마다 독립적인 데이터 흐름이 생성됩니다.

Subscriber 간에 데이터를 공유하지 않으며, 각 Subscriber는 스트림의 시작부터 데이터를 받게 됩니다.

데이터 소비가 Subscriber의 구독과 관련이 있습니다.

예를 들어, Flux.fromIterable과 같은 메서드로 생성되는 Flux 객체가 Cold sequence의 예입니다.

Hot Sequence (Hot Publisher)

Hot sequence는 데이터 스트림을 공유하고 Subscriber가 언제든지 현재 데이터 흐름에 접속할 수 있는 형태입니다.

데이터 스트림은 미리 생성되며 Subscriber는 그 시점부터 데이터를 수신합니다.
Subscriber가 구독했을 때 이미 생성된 데이터는 처음부터 전달되지 않고, 현재 데이터 흐름으로부터 데이터를 받습니다.

데이터 소비가 Subscriber의 구독과는 독립적으로 발생할 수 있습니다.
예를 들어, 마우스 이벤트나 센서 데이터와 같은 실시간 데이터 스트림이 Hot sequence의 예입니다.

간단히 말해, Cold sequence는 Subscriber마다 독립적인 데이터 흐름을 가지며, 각 Subscriber는 데이터 스트림을 처음부터 받습니다.

반면에 Hot sequence는 여러 Subscriber가 하나의 데이터 흐름을 공유하며, 데이터 스트림은 이미 생성되어 있으며 언제든지 Subscriber가 접속하여 현재 데이터를 받을 수 있습니다.

profile
_serendipity

0개의 댓글