아.. 솔직히 돈있으면 이런 고민하지 말고 클러스터링 쓰자... 그게 답이다.
돈 없어서 이렇게 쓰는 건데... 영 힘들다...
원리는 이렇다.
mysql master 와 slave 여러개 로 구축을 하고....
php에서 memcache 서버에 현 접속 디비 slave를 기록해두고 순차적으로 slave를 갈아타는 아주 아주 단순한 방법이다.
insert/update/delete 등 데이터 조작이 일어날 경우에만 master로 연결하고 나머지 경우에는 slave로만 가는 형태이다.
이렇게 서버가 있다고 가정하다.
php-fpm
memcached
mysql master
mysql slave 1
mysql slave 2...
php-fpm에서는 mysql master의 접속이 아닌 경우 데이터베이스 접근 전에 memcached 에다가 바로 전에 slave 몇 번 서버에 접근했는지 정보를 가져와서 순차적으로 다음번 slave 접속해서 질의하는 형태이다.
이 경우 좃되는 경우가 하나 있다.
동기화의 문제인데... 그건 검증 로직을 활용하여 프로시저를 만들어 관리해야 하고
문제가 있다고 판단이 될 경우 해당 slave 서버를 서비스 중단을 해야 한다.
이렇게 감시관리하는 데몬을 뛰워 분산처리를 시도하였다.
뭐 그런대로는 쓸만하긴 하나... 돈 있으면 오라클 쓰자..ㅡㅡ;;
이런 !@#!%!@!@#!#@