MongoDB AutoSharding+Replication sets稳定性测试

单Replication sets设计:

如图所示,10.9.3.228只启动Mongos和config两个服务

  1. ^_^[root@:/usr/local/mongodb/bin]#cat runServerConfig.sh  
  2. ./mongod --configsvr --dbpath=../data/config --logpath=../data/config.log --fork  
  3. ^_^[root@:/usr/local/mongodb/bin]#cat runServerMongos.sh  
  4. ./mongos --configdb 10.7.3.228:27019 --logpath=../data/mongos.log --logappend --fork 

注意:Mongos里面的ip和端口是config服务的ip和端口

先进性配置AutoSharding

163的shardv已经启动了,只要启动下165服务器的autoSharding服务

  1. [root@localhost bin]# cat runServerShard.sh    
  2. ./mongod --shardsvr -dbpath=../data/mongodb --logpath=../data/shardsvr_logs.txt --fork 

再在228服务器上进行相应Sharding配置

use admin

  1. > db.runCommand({addshard:"10.10.21.163:27018"});    
  2. "shardAdded" : "shard0000""ok" : 1 }   
  3. > db.runCommand({addshard:"10.10.21.165:27018"});    
  4. "shardAdded" : "shard0001""ok" : 1 }   
  5. > db.runCommand({enableSharding:"test"})     
  6. "ok" : 1 }   
  1. > db.runCommand({shardcollection:"test.users",key:{_id:1}})     
  2. "collectionsharded" : "test.users""ok" : 1 }   

然后分别在163和164服务器上启动rep服务,163要单独启动shard服务

163:

  1. [root@localhost bin]# cat runServerShard.sh    
  2. ./mongod --shardsvr --dbpath=../data/mongodb --logpath=../data/shardsvr_logs.txt --fork --replSet set163164   

164:

  1. [root@localhost bin]# cat runServerShard.sh    
  2. ./mongod --dbpath=../data --logpath=../data/shardsvr_logs.txt --fork --replSet set163164   

继续配置163和164的Replication

  1. [root@localhost bin]# ./mongo 10.10.21.163:27018   
  2. MongoDB shell version: 1.8.2   
  3. connecting to: 10.10.21.163:27018/test   
  4. > cfg={_id:"set163164",members:[                               
  5. ... {_id:0,host:"10.10.21.163:27018"},   
  6. ... {_id:1,host:"10.10.21.164:27017"}   
  7. ... ]}   
  8. {   
  9.         "_id" : "set163164",   
  10.         "members" : [   
  11.                 {   
  12.                         "_id" : 0,   
  13.                         "host" : "10.10.21.163:27018"   
  14.                 },   
  15.                 {   
  16.                         "_id" : 1,   
  17.                         "host" : "10.10.21.164:27017"   
  18.                 }   
  19.         ]   
  20. }   
  21. > rs.initiate(cfg)   
  22. {   
  23.         "info" : "Config now saved locally.  Should come online in about a minute.",   
  24.         "ok" : 1   
  25. }   
  26. > rs.conf()   
  27. {   
  28.         "_id" : "set163164",   
  29.         "version" : 1,   
  30.         "members" : [   
  31.                 {   
  32.                         "_id" : 0,   
  33.                         "host" : "10.10.21.163:27018"   
  34.                 },   
  35.                 {   
  36.                         "_id" : 1,   
  37.                         "host" : "10.10.21.164:27017"   
  38.                 }   
  39.         ]   
  40. }   
  41. set163164:PRIMARY>    
  42. set163164:PRIMARY>    
  43. set163164:PRIMARY> show dbs   
  44. admin   (empty)   
  45. local   14.1962890625GB   
  46. set163164:PRIMARY> use local   
  47. switched to db local   
  48. set163164:PRIMARY> show collections   
  49. oplog.rs   
  50. system.replset   
  51. set163164:PRIMARY> db.system.replset.find()   
  52. "_id" : "set163164""version" : 1, "members" : [   
  53.         {   
  54.                 "_id" : 0,   
  55.                 "host" : "10.10.21.163:27018"   
  56.         },   
  57.         {   
  58.                 "_id" : 1,   
  59.                 "host" : "10.10.21.164:27017"   
  60.         }   
  61. ] }   
  62. set163164:PRIMARY> rs.isMaster()   
  63. {   
  64.         "setName" : "set163164",   
  65.         "ismaster" : true,   
  66.         "secondary" : false,   
  67.         "hosts" : [   
  68.                 "10.10.21.163:27018",   
  69.                 "10.10.21.164:27017"   
  70.         ],   
  71.         "maxBsonObjectSize" : 16777216,   
  72.         "ok" : 1   
  73. }   

至此Replication sets配置成功!

至此AutoSharding+Rep配置成功。然后进行测试稳定性阶段。(刚才注意 应该先配sharding再配Replication)

先看下结果:

可以看到,总共插入2000W条数据,163和164相同大小 165属于分片 数据。

我现在进行稳定性测试:

断掉163服务器。

Mongos那再相应进行查询:

  1. > db.users.find()   
  2. error: { "$err" : "error querying server: 10.10.21.163:27018""code" : 13633 }   
  3. > db.users.find()   
  4. error: {   
  5.         "$err" : "DBClientBase::findOne: transport error: 10.10.21.163:27018 query: { setShardVersion: \"test.users\", configdb: \"10.7.3.228:27019\", version: Timestamp 11000|1, serverID: ObjectId('4e2f64af98dd90fed26585a4'), shard: \"shard0000\", shardHost: \"10.10.21.163:27018\" }",   
  6.         "code" : 10276   
  7. }   
  8. > db.users.find()                                                                              
  9. error: { "$err" : "socket exception""code" : 11002 }   

直接出现错误!

再进行手动添加164服务器!

  1. > db.runCommand({addshard:"10.10.21.164:27017"});    
  2. {   
  3.         "ok" : 0,   
  4.         "errmsg" : "host is part of set: set163164 use replica set url format <setname>/<server1>,<server2>,...."   
  5. }   

还是出错!

可见这样配置是有问题的!

文章未完,继续更新中!

原文链接:http://blog.csdn.net/crazyjixiang/article/details/6636671

【编辑推荐】

  1. 教你如何利用MySQL学习MongoDB
  2. 说说MongoDB的基础
  3. 如何用Java操作MongoDB
  4. MongoDB分布式自动分片(Auto-sharding)研究
  5. MongoDB 1000W级数据Insert和Query性能测试

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/275400.html<

(0)
管理的头像管理
上一篇2025-05-10 04:34
下一篇 2025-05-10 04:36

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注