ProxySQL은 DB와 백엔드 서버 간의 커넥션을 효율적으로 관리합니다.
이를 통해 네트워크 리소스를 최적화하고, 데이터베이스 서버의 부하를 줄일 수 있습니다.
또한 ProxySQL은 쿼리 캐싱이 가능해, 동일한 쿼리에 대해 향상된 응답 시간을 제공합니다.
Connection Multiplexing 기능도 제공하여 커넥션 비용을 아낄 수 있습니다.
만약에 운영하는 서비스의 동시접속자가 3~10만 이상이 예상되면 어떻게 DB와 어플리케이션의 구성을 해야할까요??
동접자가 많으면 방화벽, 앱서버, 데이터베이스 등 각 서버에서 버틸 수 있는 세션은 한계에 봉착하게 됩니다.
커넥션풀을 사용할 수 있는 ProxySQL을 사용하게 되면 수많은 클라이언트 연결을 수신하고, 이 연결을 백엔드에서 들어오는 커넥션을 MySQL 서버에 재분배하여, 단일 MySQL 서버가 수신해야 할 연결 수를 크게 줄입니다.
이는 애플리케이션 서버, 데이터베이스 서버, 그리고 방화벽에서 감당해야 하는 세션 수를 최적화하는 데 도움이 됩니다.
[ ProxySQL 의 기능 ]
-
Connection Pooling
-
Connection Multiplexing
-
MySQL Native Protocol
-
Query base Routing
-
Query Rewrite
-
Database Schema Base Sharding
-
Database User Base Sharding
-
Query Data Caching
[ ProxySQL 구성 아키텍쳐 ]


"다음글에 ProxySQL 설치 및 Cluster 구성하는 방법에 대해 작성해보겠습니다."
ProxySQL Cluster 구성 후 LB 를 통해 Port 3306으로 들어오는 서비스들을 로드밸런싱하여 DB 로 연결하는 구성을 해보았습니다.
ProxySQL 을 활용하여 Read/Write Split 도 가능해 DB Resource 도 효율적으로 사용 가능해집니다.
*** 참고 ***
https://proxysql.com/documentation/
Documentation - ProxySQL
Official ProxySQL Documentation Quick Guides The quick guides are designed to get you up and running quickly with ProxySQL. These guides are aimed at helping someone new to ProxySQL in understanding the basic configuration concepts.
proxysql.com
'ProxySQL' 카테고리의 다른 글
ProxySQL 클러스터 설치 및 구성 (0) | 2024.07.31 |
---|