You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					46 lines
				
				935 B
			
		
		
			
		
	
	
					46 lines
				
				935 B
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const co = require('co');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								co(function*() {
							 | 
						||
| 
								 | 
							
								  const Sharded = require('mongodb-topology-manager').Sharded;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Create new instance
							 | 
						||
| 
								 | 
							
								  const topology = new Sharded({
							 | 
						||
| 
								 | 
							
								    mongod: 'mongod',
							 | 
						||
| 
								 | 
							
								    mongos: 'mongos'
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  yield topology.addShard([{
							 | 
						||
| 
								 | 
							
								    options: {
							 | 
						||
| 
								 | 
							
								      bind_ip: 'localhost', port: 31000, dbpath: `/data/db/31000`, shardsvr: null
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }], { replSet: 'rs1' });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  yield topology.addConfigurationServers([{
							 | 
						||
| 
								 | 
							
								    options: {
							 | 
						||
| 
								 | 
							
								      bind_ip: 'localhost', port: 35000, dbpath: `/data/db/35000`
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }], { replSet: 'rs0' });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  yield topology.addProxies([{
							 | 
						||
| 
								 | 
							
								    bind_ip: 'localhost', port: 51000, configdb: 'localhost:35000'
							 | 
						||
| 
								 | 
							
								  }], {
							 | 
						||
| 
								 | 
							
								    binary: 'mongos'
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  console.log('Start...');
							 | 
						||
| 
								 | 
							
								  // Start up topology
							 | 
						||
| 
								 | 
							
								  yield topology.start();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  console.log('Started');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Shard db
							 | 
						||
| 
								 | 
							
								  yield topology.enableSharding('test');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  console.log('done');
							 | 
						||
| 
								 | 
							
								}).catch(error => {
							 | 
						||
| 
								 | 
							
								  console.error(error);
							 | 
						||
| 
								 | 
							
								  process.exit(-1);
							 | 
						||
| 
								 | 
							
								});
							 |