並提前感謝您的時間。爲什麼啓動mongos時配置服務器字符串順序敏感?
對於給定的分片設置,在指定要與之通話的配置服務器時啓動mongos。假設我們從以下mongos選項開始:
--configdb=cf1,cf2,cf3
一切都很好,並且很棒。如果你要重新啓動mongos(或啓動不同的mongos)有:
-- configdb=cf3,cf2,cf1
這將導致以下錯誤:
Tue Jul 9 23:32:41 uncaught exception: error: { "$err" : "could not initialize sharding on connection rs1/db1.me.net:27017,db2.me.net:27017,db3.me.net:27017, :: caused by :: mongos specified a different config database string : stored :cfg1:27017,cfg2:27017,cfg3:27017 vs given :cfg3:27017,cfg2:27017,cfg1:27017","code" : 15907}
我的問題是,什麼是推理蒙戈到的順序敏感配置服務器字符串?我想在某個時候它會解析不同的服務器主機名/端口,爲什麼不直接比較一下呢?我知道你可以從source code看到它只是一個字符串比較,但我的問題是這個的根本原因。
這個問題的一些上下文:我使用廚師爲我的mongo部署。我們最近經歷了migrating the config server with the same hostname的練習。然而,這仍然是一個破壞性的過程,因爲廚師拿起配置服務器的命令已經改變,從而改變了命令mongos開始它的過程。我明白這個問題直接是因爲廚師的功能,但我很好奇爲什麼Mongo不是這樣靈活。
再次感謝您的時間。
感謝您的信息! – RawMeat13