반응형
아직 정확한 원인은 파악되지 않았고, 기록차원으로 작성했다.
WebClient 에서 간헐적으로 "Only one connection receive subscriber allowed" 에러가 계속 발생하는것을 경험했다. 엄밀히 말하면 reactor-netty 에서 에러가 발생한다.
Exception:java.lang.IllegalStateException: Only one connection receive subscriber allowed.
at reactor.netty.channel.FluxReceive.startReceiver(FluxReceive.java:182)
샘플 프로젝트를 만들고 에러를 재현해서 reactor-netty 에 문의 해봤는데 Spring Framework issue 라는 답변만 줬다. 2021년부터 논이슈로 해결 안된 상태여서 일단 나도 더 파보는건 멈춘 상태다.
결론적으로 WebClient 호출을 flatMap 으로 여러번 호출하면 간헐적으로 발생한다는것만 인지하고 있다.
Flux.range(1, 1000)
.flatMap(i -> callWebClientApi());
추후 새로운 내용들이 나오면 업데이트 하겠다.
cf) reacot-netty 1.0.27 버전부터 Only one connection receive subscriber allowed 메세지는 "Rejecting additional inbound receiver" 로 바꼈다. 관련PR
반응형
'Spring' 카테고리의 다른 글
Kafka consumer 와 partition 개수 증가시키기 (0) | 2023.11.11 |
---|---|
EDA 에서 Event 중복 발행(동시성 이슈) (0) | 2023.07.22 |
WebClient 에서 raw response body 로깅 (0) | 2023.07.15 |
EDA 에서 NullPointerException 조심하기 (0) | 2023.04.15 |
WebClient 인코딩 중복 이슈 (0) | 2023.03.13 |