Skip to content

[Chapter 10] 비동기 논블로킹과 커넥션 풀 #148

Discussion options

You must be logged in to vote

저도Lettuce는 내부에 Netty 프레임 워크를 포함하고 있어 비동기 논블로킹으로 구현되어 있다. 그래서 스프링 애플리케이션과 레디스 사이에 커넥션 풀이 필요 없다. 의미를 고민해보았는데요

@BvrPark 님께서 말씀하신대로 레디스가 싱글스레드 이므로 커넥션 풀이 필요없는 것도 맞는 말 같습니다.
다중 커넥션을 맺는다 하여도 결국 단일 커넥션에 비해서 성능이 좋을까? 라는 생각이 들어서요

그런데 위 문구만 보고 생각을 해보면
커넥션 풀은 MYSQL 연결을 하면서 학습했듯 매번 요청마다 커넥션을 맺고 끊는 행위가 매우 비효율적이고 느려서 미리 커넥션을 연결한 상태를 유지하고 필요할때 해당 커넥션을 사용하여 비효율적인 문제를 해결한 방식입니다.

그런데 lettuce는 Netty 프레임 워크를 포함하고 있어 비동기 논블로킹으로 구현되어 있어 커넥션을 맺는대 있어서 톰캣과 같은 동기 블로킹 방식보다 훨씬 빠르게 가능하여 굳이 커넥션풀을 사용할 필요 없는 것이 아닐까 생각합니다.
(여러 스레드에서 DB와의 연결을 할려고 할때 블로킹이면 하나의 스레드가 DB와 커넥션 맺는 동안 기다려야 하므로...)

결국 통합적인 이유가 아닌가 생각합니다.

Replies: 2 comments

Comment options

You must be logged in to vote
0 replies
Answer selected by BvrPark
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chapter10 레디스와 스프링 캐시
3 participants