2011-05-05 4 views
2

나는 MySQL 위에 API를 노출시키는 하나의 중앙 시스템을 가지고있는 프로젝트를 가지고있다. 이제는 동일한 서비스를 여러 상자 (50 이상이 될 수 있음)에 로컬로 복제해야합니다. "중앙"시스템이 다운되면 신속한 응답과 장애 조치를 보장하기 위해 각 상자에 DB의 로컬 캐시를 갖고 싶었습니다.분산 데이터베이스를위한 최상의 설계

어떤 아이디어가 가장 좋은 디자인입니까? 일종의 마스터/슬레이브를 설정하고 있다고 생각했지만 50 개 이상의 서버에서 작동하는지 확실하지 않습니다. 가장 좋은 방법이 무엇인지 잘 모르겠습니다. 어떤 아이디어라도 대단히 감사하겠습니다.

답변

0

내가 본 복제본에는 마스터와 슬레이브가 있습니다. 주인이 무너지면 노예 중 하나가 대신합니다. 50 대 이상의 노예를 사용하면 장황하고 혼란스런 사슬을 가질 수 있습니다.

내가 다음 중 하나를 제안, 당신이 가지고있는 데이터의 유형 또는 읽기/쓰기 비율에 대해 아무것도 모르고 :

  1. 캐시 정적 데이터를 로컬 (memcache를, 등). 읽기는 로컬 일 것이고, 쓰기는 mysql 마스터로 돌아갈 것이다. 이는 대부분 정적 인 구성 정보에 적용됩니다. 지금 설치 프로그램에 6 대의 서버가 있습니다.
  2. 데이터를 공유하십시오. 50 대의 서버로 25 개의 마스터/슬레이브 쌍으로 설정하고 각 샤드에 1/25의 데이터를 넣으십시오. N + 1 중복을 위해 서버를 하나 더 확보하십시오.

희망이 있습니다.

관련 문제