Latest web development tutorials

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 연결할