如何搭建mongodb架构Replica Set&Sharding—ttlsa

分类:编程技术 时间:2024-02-20 15:38 浏览:0 评论:0
0
本文与大家分享如何搭建mongodb架构Replica Set&Sharding-ttlsa。小编觉得很实用,所以分享给大家学习一下。希望您读完本文后有所收获。话不多说,就跟随小编一起来看看吧。

一分钟搭建mongodb架构副本集&Sharding——ttlsa

在测试试用阶段,我们需要一个模拟的测试环境来测试应用和系统架构各方面功能是否满足需求。在我的公司,我经常使用下面的方法来设置mongodb的副本集和分片架构供开发人员测试。我也经常使用这种方法来模拟在线架构并测试相关内容。
在不连接到任何 mongod 的情况下打开 MongoDB shell

1

# ./mongo --nodb< /code>

创建一个副本集,一主二备

?

1

>replicaSet = ReplSetTest({"节点" : 3})

开始三个 mongod 实例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

p>

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

p>

51

52

53

54

55

56

57

58

59

60

61

62

63

64

>replicaSet.startSet()

ReplSetTest 起始设置

ReplSetTest n 0

ReplSetTest n:<代码类="\"actionscript3">0端口:[ 310003100131002 ] 31000数字< /p>

{

"useHostName": true,

"oplogSize"40

"keyFile"未定义

"端口": 31000,

"noprealloc": "",

"小文件" "",

"休息"""

"replSet": "testReplSet",< /code>

"dbpath": "$set-$node",

< p>< code class="\"actionscript3">"重新启动"未定义

"pathOpts":{

"节点": 0,

"设置" <代码class="\"actionscript3">: "testReplSet"

}

}

ReplSetTest 正在开始...

正在重置数据库路径' /data/db/testReplSet-0'

ReplSetTest n : 1

ReplSetTest n : 1端口:[ 31000, 31001, 31002] 31001数字

{

"useHostName": true,

"oplogSize"40,

"keyFile"未定义

<代码类 =“\”actionscript3">"端口"31001,

"noprealloc": "",

"小文件"<代码类 =“\”actionscript3">:""

< p>"休息""",

"replSet": "testReplSet"<代码类 =“\”actionscript3">,

"dbpath": "$set-$node",< /代码>

"重新启动"未定义

"pathOpts":{

"节点": 1,

"设置": "testReplSet"

<代码 class="\"actionscript3">}

}

ReplSetTest 开始...

重置数据库路径<代码类别="\"actionscript3">'/data/db/testReplSet-1'

ReplSetTest n 2

ReplSetTest n:

代码>2端口:[ < /code>31000, 3100131002] 31002数字

{

< p>"useHostName"true,

"oplogSize"40

“keyFile”未定义代码>

"端口"31002

"noprealloc" ""

“小文件”"",

"休息": "",

<代码类=“\”actionscript3”> <代码类=“\”actionscript3”>“replSet”<代码类=“\”actionscript3”>: <代码类=“ \"actionscript3">"testReplSet",

"dbpath": "$set-$node",

"重新启动" 未定义< /p>

"pathOpts":{

"节点"2

"设置""testReplSet"

}

}

ReplSetTest 开始...

重置数据库路径'/data/db/testReplSet-2'

复制集初始化

1

2

3

4

5

6

7

8

9

10

11

12

13

14

< p>15

16

17

18

p>

19

20

< /td>

>replicaSet.initiate ()

{

<代码 class="\"actionscript3">"replSetInitiate": {

< /code>"_id": "testReplSet"代码>,

"成员": [

{

"_id": 0,

"主机": "nd0302012029:31000"

< p>},

< /code>{

" _id"1

"主机""nd0302012029:31001"

},

{

"_id": 2<代码类=“\”actionscript3”>,

“主机”"nd0302012029:31002"

}

]

}

}

已启动三个实例,监听端口31000,分别为31001、31002

当前MongoDB shell窗口会输出大量日志信息,影响操作。,再打开一个MongoDB shell

1

2

3< /p>

4

5

6

7

8

9

10

11

12

13

14

15

< p>16

17

18

19

20

21

# ./mongo -- nodb

conn1 = Mongo("localhost:31000")

primaryDB = conn1.getDB("测试") //testReplSet是默认的副本集测试名称

test

primaryDB.isMaster()

{

<代码class="\"actionscript3">"setName": "testReplSet",

"ismaster": true,

"辅助"

<代码类 =“\”actionscript3">"主机":[

"nd0302012029:31000",

"nd0302012029:31002"

"nd0302012029:31001"

],

"主要""nd0302012029:31000",

<代码类=“\”actionscript3&gt;“我”<代码类=“\”actionscript3&gt;:<代码类=“\”actionscript3&gt;“nd0302012029:31000” ,

"maxBsonObjectSize"< /code>16777216

"maxMessageSizeBytes"48000000

"localTime":ISODate("2013-07-28T04:23:49.866Z"),

"确定"1

}

插入1000个文档

?

< /table>

创建第二个连接,连接到辅助

1

2

3

> 对于(i=0;我<<>1000; i++) { PrimaryDB.coll.insert({count: i}) }

> PrimaryDB.coll.count()

1000

< td class="\"code\"" width="\"572\"" height="\"NaN\"" >

> conn2 = <代码类=“\”actionscript3“>新<代码类=”\“actionscript3”>Mongo(<代码类=“\”actionscript3&gt;“localhost:31001”< code class="\"actionscript3">)

连接到本地主机:31001

> secondaryDB = conn2.getDB( "test")

测试

> secondaryDB.coll.find() //默认情况下, secondary 不可读写

错误:{ "$err""不是主从Ok=false", "code" : 13435}

< /td>

1

2

3

4

5

6

允许辅助读取

尝试向辅助写入数据

?

1

2

3

4

5

6

7

8

9

10

p >

> secondaryDB.coll.insert({"count": 1001})

> secondaryDB.runCommand({"getLastError": 1})

{

"错误" "不是大师” code>

"code"10058

"n"0,

"lastOp": 时间戳(0 0),

"connectionId": < /code>75,

"确定"1

}

您可以看到辅助设备确实不接受客户侧写操作

测试副本集的自动故障转移功能:
关闭31000个实例

检查哪个实例成为primary

可以看到31002实例成为New master

关闭副本集

Sharding的简单构建方法请参见:http://www.ttlsa.com/html/ 1787.html

以上就是如何搭建mongodb架构Replica Set&Sharding—ttlsa,小编认为其中的一些知识点在我们日常工作中可能会看到或者用到,希望大家可以通过本文了解更多内容,更多详情请关注行业资讯频道。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何搭建mongodb架构Replica Set&Sharding—ttlsa

用户评论