안녕하세요.
영한님 강의 꾸준히 잘 듣고 있습니다.
사실 JPA는 실무에서 사용중이지 않아서 미루다가 거의 1년만에 완강을 눈앞에 두고 있습니다. ^^; 완강을 앞두고 문의드릴 점이 있습니다.
팀 내부적으로 webflux reactor(요즘은 kotlin coroutine)+ nosql을사용하고 있는데요
근래에 rdb를 사용할 일이 있어서 JPA vs R2DBC 중 어떤 것을 사용할 지 고민이 됩니다.
지금까지 blocking 처리할 일이 있으면 아래처럼 blocking 콜을 감싸서 처리를 하고 있었는데
https://projectreactor.io/docs/core/release/reference/#faq.wrap-blocking
만약 JPA blocking콜을 감싸서 사용한다고해도, JPA는 영속성 컨텍스트 때문에 비슷하게 처리하는게 안될 것 같기도하고, Spring 에서도 Reactive 한 환경에서는 JPA 쓰지말라고 권고 하고 있는 상태여서 공부한걸 못써먹겠다는 느낌이 드는데
R2DBC는 또 ORM이 아니기도하고.. 1.0.0 이 이제 막 도입되어서 버그도 아직 많아보이고 실전에서 써먹으려면 고생할 것이 보이는 상황입니다.
배민에서는 JPA를 많이 쓰시는 것 같은데
Reactive 한 환경에서는 어떻게 활용하고 계신가요?
주저리 질문이 좀 길긴 한데
요약하자면 다음과 같습니다.
현상황
1. 동시처리량이 많아서 webflux를 쓰고 싶은 상황
2. RDB를 써야함
질문
1. JPA를 Webflux 환경에서 쓰는것이 가능할까요?
2. R2DBC에 문제가 많이보이는데, Non-Blocking을 포기하고 JPA를 그냥쓸까요?
감사합니다.
안녕하세요. log4j님
저도 JPA를 웹플럭스 환경에서 사용하지 않기 때문에 정확한 답을 드리기는 어려울 듯 합니다.
꼭 사용해야 한다면 다음 기술을 참고해주세요.
https://hibernate.org/reactive/
감사합니다.
답글