Read Write Query 분리
2021-11-28 21:32:33
프로젝트를 진행하는 과정에서 MySQL DB를 replication을 진행했는데 이는 추후 서버 증설을 가정했을 때 가용성이나 다수의 서버가 한 대의 데이터베이스를 바라보는 구조에서 트래픽이 한 개의 DB에 몰릴 때 해당 DB가 죽어버리면 앞단의 모든 서버까지 다 죽을 위험이 있기 때문이다. 요청당 스레드가 서버의 cpu,메모리, db connection 등을 가지고 요청을 보내는데 뒷단에 DB가 죽었으니 time out으로 에러가 발생할때까지 대기하게 되고 이 과정에서 서버에 동시 접속자 수가 늘어나고 요청의 수가 많아지면 서버의 자원을 계속해서 잡아먹으며 무조건 실패하게될 요청을 죽은 DB로 보내게 되므로 서킷 브레이커를 붙여주거나 replication으로 다중화를 해주는게 좋다고 생각했다. 밑에 구..