MongoDB 的 primary是透過 replset成員間選舉產生,但我們可以透過 priority的設定來影響選舉(很邪惡吧)
以下就來介紹怎麼買票(呵~~說錯了,是怎麼設定priority)
首先你要先登入MongoDB primary server,並下指令rs.conf()來確定member的編號
nowgarden:PRIMARY> rs.conf()
{
"_id" : "replset",
"version" : 193744,
"members" : [
{
"_id" : 14,
"host" : "mongodb1.nn.com.tw:27017",
},
{
"_id" : 16,
"host" : "mongodb3.nn.com.tw:27017"
},
{
"_id" : 15,
"host" : "mongodb4.nn.com.tw:27017"
},
{
"_id" : 13,
"host" : "mongodb5.nn.com.tw:27017"
}
]
}
記住member的編號不是"_id"後的數字,而是你要從0往下數,例如
mongodb1.nn.com.tw:27017 是 member[0]
mongodb3.nn.com.tw:27017 是 member[1]
mongodb4.nn.com.tw:27017 是 member[2]
mongodb5.nn.com.tw:27017 是 member[3]
這樣會算了吧!!
下一個步驟我們來設定member的priority
replset:PRIMARY> cfg = rs.conf()
replset:PRIMARY> cfg.members[0].priority = 0.5
replset:PRIMARY> cfg.members[1].priority = 2
replset:PRIMARY> cfg.members[2].priority = 2
replset:PRIMARY> rs.reconfig(cfg)
OK..收工了
那要怎麼確定設定成功呢??
重打一次 rs.conf()
"_id" : 14,
"host" : "mongodb1.nn.com.tw:27017",
"priority" : 0.5
是不是有多一行了.