Reactor Hooks

June Lee·2021년 9월 24일
0

Spring WebFlux

목록 보기
3/6

리액터에서는 일정 시점에 특정 메소드를 트리거할 수 있는 hooks를 제공한다.

1. Dropping Hooks
Dropping Hooks는 제대로 동작은 하지만 Reactive 사양을 지키지 않은 경우 동작한다.

ex) onComplete() 연산자가 호출된 후 onNext(), onError() 연산자가 호출된 경우
-> onErrorDropped, onNextDropped (즉 특정 연산자가 drop 됐다는 훅)

2. Internal Error Hooks
특정 연산자가 실행되는 도중 에러가 난 경우 동작한다.

ex) onOperatorError

이런 에러 훅은 런타임 에러가 발생했다는 의미이며, 특히 멀티 쓰레딩을 하는 webflux에서는 하나의 쓰레드가 여러 request를 처리하기 때문에, 이런 에러를 핸들링하지 않으면 여러 요청이 다 죽어버리는 결과를 초래한다. 따라서 매우 주의해서 에러 처리를 해줘야한다!

3. Assembly Hooks

ex) 각 연산자마다 호출하고 싶은 메서드가 있다면 onEachOperator 훅을 사용한다.
-> 사용 예시로는 연산자마다 publisher를 바꿔주고 싶은 경우?



참고 자료
https://projectreactor.io/docs/core/release/reference/#hooks
https://m.blog.naver.com/gngh0101/221560774000

profile
📝 dev wiki

0개의 댓글