반응형

projectreactor 4

Java Reactive Streams Publisher / Subscriber 분석 (projectreactor)

개요 ReactibeStreams의 사상 및 목적 조사 및 Publisher / Subscriber의 실제 동작 확인 Java의 Reactive Programing의 구현 사항 및 동작 원리 분석 Reactive Programing 이란 정의 데이터 스트림의 구성 및 변화의 전파에 대한 선언적 프로그래밍 패러다임 이 패러다임을 도입하면 배열 또는 이벤트 스트림을 쉽게 표현할 수 있다. 목적 1. (비동기적인) 이벤트 처리를 표현 및 구현하기 위해 2. 데이터 스트림을 표현 및 구현하기 위해 3. 반응형 시스템을 구현하기 위해 즉 실시간 데이터의 변화를 효율적으로 반영하여 제공하기 위해 탄생했다. 원칙 1. Responsive: 시스템은 요청/호출에 대해 즉각 응답할 수 있어야 한다. 2. Resilien..

개발 일지 2024.03.26

ProjectReactor Case Study

개요 Reactive coding에서는 적절한 operation 사용이 필수 불가결이다. 이는 가독성을 높이고, Sequence를 효과적으로 구성할 수 있다. 하지만, operator는 종류가 많고, 복잡한 것들이 많기 때문에, 선택에 어려움이 있다. 이번 글은 상황 별 operator 가이드와, 예시를 제공하고자 한다. Case 별 Operator 정리 Sequence 생성 Operator 상황 just, justOrEmpty 특정 Element 또는 Element들로 시작하는 Sequence 생성 fromArray, fromIterable, range, fromStream iteration 할 수 있는 Element들로 Sequence(Flux) 생성 empty empty한 Sequence 생성 de..

개발 일지 2024.02.22

Global Hooks And Context Propagation (Projectreactor Advanced Features)

Global Hooks란 리액터는 연산자의 콜백을 전역으로 설정할 수 잇다. 이는 Operator에 element가 흐르는 로직에 관여하는 것과 비슷하다. Hooks 클래스로 제공되는 기능으로 3가지 종류가 있다. 1. Dropping Hooks 2. Internal Error Hook 3. Assembly Hooks DroppingHooks 일반적으로 onError가 모든 에러를 잡을 수 있을 것으로 기대하지만, 그렇지 못한 상황이 발생한다. 가령 onComplete()를 호출 한 후 onNext()등 다른 signal를 연결했을 때 또는 handle되지 못한 에러가 있다. Dropped By Previous Complete // onNextDropped Example Hooks.onNextDroppe..

개발 일지 2024.02.20

Hot vs Cold Publisher (Projectreactor Advanced Features)

개요 Project Reactor 기능 중 심화 개념에 해당되는 파트들을 정리 Hot Publisher And Cold Publisher 일반적으로 Webflux 등에서 사용되는 Publisher들은 subscribe()가 되어야 Element를 생성한다. 이는 모두 Cold Publisher를 사용하기 때문이며, Hot Publisher는 구독과 상관없이 Element를 생성한다. cold와 hot의 차이점은 데이터 발행의 주도권이 누구에게 있는가 이다. Cold Publisher Flux source = Flux.fromIterable(Arrays.asList("blue", "green", "orange", "purple")) .map(String::toUpperCase); source.subscri..

개발 일지 2024.02.19
반응형