您的位置:首页 > 移动开发 > Android开发

Android之MTP框架和流程分析(二)

2014-10-13 11:34 387 查看
既要有副本集的热备功能,又要充分利用多台服务器性能 
 





 
 

01.
详细配置步骤如下:


02.
1、配置shard1用到复制集 s1:


03.
  在serverA上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_1/db --logpath=/data/mongo/s1_1/log/mongo.log --logappend --fork


04.
  在serverB上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_2/db --logpath=/data/mongo/s1_2/log/mongo.log --logappend --fork


05.
  在serverC上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_3/db --logpath=/data/mongo/s1_3/log/mongo.log --logappend --fork


06.
  连接三个节点的任一个初始化复制集s1 


07.
  >use admin


08.
  >config = {_id:'s1',members:[{_id:0,host:'serverA:27020',priority:1},{_id:1,host:'serverB:27020'},{_id:2,host:'serverC:27020'}]}


09.
  >rs.initiate(config)


10.
  >rs.status()


11.
  另外对复制集s1的所有节点都执行如下命令确保所有节点都能分担读取的压力


12.
  >db.getMongo().setSlaveOk();


13.
2、配置shard2用到复制集 s2:


14.
  在serverA上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_1/db --logpath=/data/mongo/s2_1/log/mongo.log --logappend --fork


15.
  在serverB上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_2/db --logpath=/data/mongo/s2_2/log/mongo.log --logappend --fork


16.
  在serverC上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_3/db --logpath=/data/mongo/s2_3/log/mongo.log --logappend --fork 


17.
  连接三个节点的任一个初始化复制集s2 


18.
  >use admin


19.
  >config = {_id:'s2',members:[{_id:0,host:'serverA:27021'},{_id:1,host:'serverB:27021',priority:1},{_id:2,host:'serverC:27021'}]}


20.
  >rs.initiate(config)


21.
  >rs.status()


22.
  另外对复制集s2的所有节点都执行如下命令确保所有节点都能分担读取的压力


23.
  >db.getMongo().setSlaveOk();


24.
3、配置三台Config Server:


25.
  在serverA上:mongod  -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork


26.
  在serverB上:mongod  -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork


27.
  在serverC上:mongod  -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork


28.
4、配置三台Route Server:


29.
  在serverA上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017


30.
  在serverB上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017


31.
  在serverC上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017


32.
5、配置Shard Cluster:


33.
  连接任一mongos进程执行以下命令:


34.
  use admin


35.
  sh.addShard("shard1/serverA:27020,serverB:27020,serverC:27020")


36.
  sh.addShard("shard2/serverA:27021,serverB:27021,serverC:27021")


37.
  db.printShardingStatus()


38.
6、激活数据库及集合的分片功能:


39.
  连接任一mongos进程执行以下命令:


40.
  db.runCommand({enablesharding:"testdb"})


41.
  db.runCommand({shardcollection:"testdb.collection_test",key:{_id:1}})


42.
7、登录mongos添加用户:


43.
use admin


44.
db.addUser("<
user
>","<
password
>")


45.
  db.addUser("<
user
>","<
password
>",true) //添加只读用户


46.
8、关闭三台机器的全部mongod,mongos:


47.
  sudo killall mongod


48.
  sudo killall mongos


49.
9、生成keyfile:(每个进程的key file都保持一致)


50.
  openssl rand -base64 753 >keyfile


51.
  将生成的keyfile 拷贝到mongod/mongos 进程对应的文件夹


52.
  并执行语句更改权限:sudo chmod 600 keyfile


53.
  使用--keyFile参数指定前面生成的keyfile文件,重启三台机器全部mongod,mongos进程 


54.
  在serverA上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_1/db --logpath=/data/mongo/s1_1/log/mongo.log --logappend --fork --keyFile  /data/mongo/s1_1/keyfile


55.
  在serverB上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_2/db --logpath=/data/mongo/s1_2/log/mongo.log --logappend --fork --keyFile  /data/mongo/s1_2/keyfile


56.
  在serverC上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_3/db --logpath=/data/mongo/s1_3/log/mongo.log --logappend --fork --keyFile  /data/mongo/s1_3/keyfile


57.
  


58.
  在serverA上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_1/db --logpath=/data/mongo/s2_1/log/mongo.log --logappend --fork --keyFile  /data/mongo/s2_1/keyfile


59.
  在serverB上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_2/db --logpath=/data/mongo/s2_2/log/mongo.log --logappend --fork --keyFile  /data/mongo/s2_2/keyfile


60.
  在serverC上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_3/db --logpath=/data/mongo/s2_3/log/mongo.log --logappend --fork --keyFile  /data/mongo/s2_3/keyfile


61.
  


62.
  在serverA上:mongod  -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork --keyFile  /data/mongo/config/keyfile


63.
  在serverB上:mongod  -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork --keyFile  /data/mongo/config/keyfile


64.
  在serverC上:mongod  -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork --keyFile  /data/mongo/config/keyfile


65.
 

66.
  在serverA上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017 --keyFile  /data/mongo/route/keyfile


67.
  在serverB上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017 --keyFile  /data/mongo/route/keyfile


68.
  在serverC上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017 --keyFile  /data/mongo/route/keyfile


69.
  完毕!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: