MongoDB를 슬라이스
조각
MongoDB의 내에 기술 슬라이스, 많은 양의 데이터 MongoDB에 대한 증가하는 수요를 충족하기 위해 다른 클러스터가있다.
MongoDB를는 방대한 양의 데이터를 저장할 때, 컴퓨터는 데이터를 저장하기에 불충분 할 수있다 허용 판독을 제공하고 처리량을 작성하기에 불충분 할 수있다. 데이터베이스 시스템에 저장하고 더 많은 데이터를 처리 할 수 있도록이 시점에서, 우리는 여러 시스템 상에 데이터를 분할 할 수있다.
왜 조각
- 모두가 기본 노드에 쓰기 작업을 복사
- 마스터 쿼리에 민감한 데이터를 지연
- 단일 복사본 세트는 12 노드로 제한됩니다
- 요청의 거대한 볼륨이 때 메모리를 나타납니다 때.
- 로컬 디스크 부족
- 수직 확장 비싸다
MongoDB를 슬라이스
다음 그림은 MongoDB의 분포 클러스터 구조 슬라이스를 사용하는 방법을 보여줍니다 :
위 그림은 다음과 같은 세 가지 주요 구성 요소가 있습니다 :
- 파편 :
실제 데이터 블록, 실제 생산 환경을 저장하는 데 사용, 몇 가지 시스템을 설정할 수 있습니다 샤드 서버 역할은 실패의 호스트 단일 지점을 방지하기위한 노력을 설정 relica
- 구성 서버 :
mongod 인스턴스는 청크 정보를 포함한 전체 ClusterMetadata를 저장한다.
- 쿼리 라우터 :
클라이언트 액세스, 전체 클러스터가 투명하게 사용할 수있는 단일 데이터베이스 프론트 엔드 애플리케이션과 같이함으로써 경로의 프론트 엔드.
조각의 예
다음과 같이 조각 패브릭 포트가 배포됩니다
Shard Server 1:27020 Shard Server 2:27021 Shard Server 3:27022 Shard Server 4:27023 Config Server :27100 Route Process:40000
시작 샤드 서버 : 하나의 단계
[root@100 /]# mkdir -p /www/mongoDB/shard/s0 [root@100 /]# mkdir -p /www/mongoDB/shard/s1 [root@100 /]# mkdir -p /www/mongoDB/shard/s2 [root@100 /]# mkdir -p /www/mongoDB/shard/s3 [root@100 /]# mkdir -p /www/mongoDB/shard/log [root@100 /]# /usr/local/mongoDB/bin/mongod --port 27020 --dbpath=/www/mongoDB/shard/s0 --logpath=/www/mongoDB/shard/log/s0.log --logappend --fork .... [root@100 /]# /usr/local/mongoDB/bin/mongod --port 27023 --dbpath=/www/mongoDB/shard/s3 --logpath=/www/mongoDB/shard/log/s3.log --logappend --fork
단계 2 : 구성 서버를 시작합니다
[root@100 /]# mkdir -p /www/mongoDB/shard/config [root@100 /]# /usr/local/mongoDB/bin/mongod --port 27100 --dbpath=/www/mongoDB/shard/config --logpath=/www/mongoDB/shard/log/config.log --logappend --fork
참고 : 여기에 우리가 처음으로 일반 MongoDB를 서비스처럼 시작할 수 있습니다, 필요 -shardsvr 및 configsvr 매개 변수를 추가 없습니다. 이 두 매개 변수의 역할이 시작 포트를 변경할 수 있기 때문에, 그래서 우리는 자기 지정된 포트가 될 수 있습니다.
3 단계 : 라우팅 프로세스를 시작합니다
/usr/local/mongoDB/bin/mongos --port 40000 --configdb localhost:27100 --fork --logpath=/www/mongoDB/shard/log/route.log --chunkSize 500
mongos 시작 파라미터는, 여기서, ChunkSize는이 하나의 덩어리의 크기를 지정하는 데 사용되는 장치가 MB가 기본 크기 200메가바이트이다.
4 단계 : 구성 샤딩
다음으로, 우리는 노드의 파편을 추가, mongos에게 MongoDB의 쉘 로그인을 사용하여
[root@100 shard]# /usr/local/mongoDB/bin/mongo admin --port 40000 MongoDB shell version: 2.0.7 connecting to: 127.0.0.1:40000/admin mongos> db.runCommand({ addshard:"localhost:27020" }) { "shardAdded" : "shard0000", "ok" : 1 } ...... mongos> db.runCommand({ addshard:"localhost:27029" }) { "shardAdded" : "shard0009", "ok" : 1 } mongos> db.runCommand({ enablesharding:"test" }) #设置分片存储的数据库 { "ok" : 1 } mongos> db.runCommand({ shardcollection: "test.log", key: { id:1,time:1}}) { "collectionsharded" : "test.log", "ok" : 1 }
5 단계 : 많이 변하지 않고 프로그램 코드 데이터베이스 액세스 인터페이스로서 통상 몽고 데이터베이스에 따른 직접 연결 40,000 연결할