WAS와 MySql 사이가 연결하기 위해서는 커넥팅 비용이 많이 차지함.
즉 Connection을 차지하는 비용이 많이 듬.
해서 Connection Pool에 Connection을 미리 만들어 둔다!
이제 WAS는 Connection이 필요할 때마다 Connection Pool에 있는 Connection을 사용하면 되는 것이다.
이렇게 되면 Connection을 생성하는 비용을 줄일 수 있고, Connection의 수를 미리 제한하여 서버 자원 고갈을 방지할 수 있다.
이러한 Connection Pool을 사용할 수 있게 해주는 프레임 워크가 HikariCP이다.
HikaiCP는 요청시에 현재 사용가능한 Connection이 있다면 Connection을 반환해준다.
하지만 만약 Connection이 존재하지 않는다면 다른 쓰레드가 Connection을 반환하길 기다리며 polling을 한다.
근데 이러한 생각을 할 수 있다. Connection Pool의 크기가 크면 동시에 많은 요청을 처리할 수 있어서 좋지만, Connection Pool의 크기가 너무 크면 서버 자원을 고갈시킬 수 있는데, 대체 어느 정도 크기의 Connection Pool 사이즈가 적당할까?
MySQL 공식 문서에는 600명의 사용자를 대응하는데에는 15-20개의 크기면 충분하다고 한다.
'memo' 카테고리의 다른 글
firebase : Cloud Firestore (0) | 2023.06.10 |
---|---|
MSA 간 데이터 동기화 (0) | 2023.05.24 |