mongodb :로드 밸런서가있는 복제 세트


9

mongodb 복제 세트로로드 밸런싱을위한 옵션이 있습니까? HAProxy 또는 이와 유사한 것이 아니라 mongodb의 내장 기능을 요구합니다. 문서에서 이에 대한 팁을 찾을 수 없습니다.

답변:


11

샤딩을 사용하는 경우 "로드 밸런서"는 몽고 프로세스입니다. 실제로 라우터와 비슷합니다. 구성 데이터베이스의 메모리 내 사본을 보관하고 샤드 키를 기반으로 의사 결정을 내릴 수 있습니다.

동일한 복제 세트 또는 세트 멤버 전체에 대한로드 밸런싱을 의미하는 경우 mongos가 해당 시나리오를 처리하도록 요청하는 기능 요청이 있습니다 ( https://jira.mongodb.org/browse/SERVER-1594 ). 드라이버 작동 방식은 실제로 필요하지 않습니다 (드라이버의 복잡성을 줄입니다).

단일 복제 세트에서는 쓰기를 분배 할 수 없으며 모두 기본으로 이동해야합니다. 필요에 따라 읽기 기본 설정 을 통해 이미 읽기를 보조에 배포 할 수 있습니다 . 드라이버는 기본 및 보조를 추적하고 쿼리를 적절하게 라우팅합니다.


2

'로드 밸런싱'은 샤딩을 통해 달성됩니다. 샤딩을 통해 실제로 쓰기 / 업데이트를 개별 샤드에 배포합니다. mongo는 원하는 키 조합을 기반으로 데이터를 분할 할 수 있으므로이를 수행하는 특정 알고리즘은 없습니다. 최선의 파티션 알고리즘은 순차적 인 항목과 임의의 항목을 혼합 한 알고리즘입니다.

예를 들어, 사용자 ID는 다음과 같이 분할 될 수 있습니다

xx-sha1(user email) 
xx = time sequence

샤딩을 구현하려면 3 개의 구성 서버와 데이터 노드가 있어야합니다. 데이터 노드는 중복성을 위해 복제 세트로 그룹화 될 수 있으며 보조에서 데이터를 읽는 데 (가능한 경우에만) 사용될 수 있습니다. 복제가 비동기로 수행되어 데이터를 읽을 수있는 경우에만 2 차 쿼리 시간에 새 데이터를 사용할 수 있다고 보장 할 수 없습니다.

파티션 알고리즘은 전적으로 귀하에게 달려 있으며 응용 프로그램 요구에 적합해야합니다. 또한 단지 데이터를 쓰려고하고 가끔씩 만 읽거나 쓴 직후에 읽어야하는지 고려해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.