Как подключиться к второстепенному монго-узлу в ruby без использования первичного узла.Я должен сделать много чтений, чтобы получить некоторые данные.Но я не хотел делать это на первичном, так как будет много чтений.
Вот что я попробовал:
require 'rubygems' # not necessary for Ruby 1.9
require 'mongo'
def dbm()
client = Mongo::Client.new(['mongodb://xx.xx.x.xxx:27017'], :database => 'mydb', read: { mode: :secondary})
collection = client[:info]
doc = collection.find({identityId: "e5c3f71c-21e0-415a-8a97-b6d8929c2af6"}).first
puts doc
end
dbm
Итак, когда я запускаю это так:
ruby script.rb
Я получаю эту ошибку:
D, [2019-05-16T11: 46: 02.902111# 58849] DEBUG -: MONGODB |Ошибка при запуске ismaster на mongodb: 0: getaddrinfo: имя узла или имя сервера не предоставлено, или неизвестно
Но когда я попытался создать клиент mongo, как это:журнал, но я мог бы получить данные:
D, [2019-05-16T12:28:57.374829 #60137] DEBUG -- : MONGODB | EVENT: #<TopologyOpening topology=Unknown[]>
D, [2019-05-16T12:28:57.375289 #60137] DEBUG -- : MONGODB | Topology type 'unknown' initializing.
D, [2019-05-16T12:28:57.377073 #60137] DEBUG -- : MONGODB | EVENT: #<TopologyChanged prev=Unknown[] new=Unknown[xx.xx.x.xxx:27017]>
D, [2019-05-16T12:28:57.377503 #60137] DEBUG -- : MONGODB | Topology type 'Unknown' changed to type 'Unknown'.
D, [2019-05-16T12:28:57.377880 #60137] DEBUG -- : MONGODB | EVENT: #<ServerOpening address=xx.xx.x.xxx:27017 topology=Unknown[xx.xx.x.xxx:27017]>
D, [2019-05-16T12:28:57.378311 #60137] DEBUG -- : MONGODB | Server xx.xx.x.xxx:27017 initializing.
D, [2019-05-16T12:28:58.073676 #60137] DEBUG -- : MONGODB | EVENT: #<ServerDescriptionChanged address=xx.xx.x.xxx:27017 topology=ReplicaSetNoPrimary[xx.xx.x.xxx:27017,name=some_name] prev=#<Mongo::Server:Description:0x70261608870540 ....
D, [2019-05-16T12:28:58.075678 #60137] DEBUG -- : MONGODB | Server description for xx.xx.x.xxx:27017 changed from 'unknown' to 'secondary'.
D, [2019-05-16T12:28:58.082393 #60137] DEBUG -- : MONGODB | EVENT: #<TopologyChanged prev=Unknown[xx.xx.x.xxx:27017] new=ReplicaSetNoPrimary[xx.xx.x.xxx:27017,pmongo1.myorg.io:27017,pmongo2.myorg.io:27017,parbiter1.myorg.io:27017,name=some_name]>
D, [2019-05-16T12:28:58.082723 #60137] DEBUG -- : MONGODB | Topology type 'Unknown' changed to type 'ReplicaSetNoPrimary'.
D, [2019-05-16T12:28:58.083183 #60137] DEBUG -- : MONGODB | EVENT: #<ServerOpening address=pmongo1.myorg.io:27017 topology=ReplicaSetNoPrimary[xx.xx.x.xxx:27017,pmongo1.myorg.io:27017,pmongo2.myorg.io:27017,parbiter1.myorg.io:27017,name=some_name]>
D, [2019-05-16T12:28:58.083491 #60137] DEBUG -- : MONGODB | Server pmongo1.myorg.io:27017 initializing.
D, [2019-05-16T12:28:58.084471 #60137] DEBUG -- : MONGODB | EVENT: #<ServerOpening address=pmongo2.myorg.io:27017 topology=ReplicaSetNoPrimary[xx.xx.x.xxx:27017,pmongo1.myorg.io:27017,pmongo2.myorg.io:27017,parbiter1.myorg.io:27017,name=some_name]>
D, [2019-05-16T12:28:58.084824 #60137] DEBUG -- : MONGODB | Server pmongo2.myorg.io:27017 initializing.
D, [2019-05-16T12:28:58.085464 #60137] DEBUG -- : MONGODB | EVENT: #<ServerOpening address=parbiter1.myorg.io:27017 topology=ReplicaSetNoPrimary[xx.xx.x.xxx:27017,pmongo1.myorg.io:27017,pmongo2.myorg.io:27017,parbiter1.myorg.io:27017,name=some_name]>
D, [2019-05-16T12:28:58.086113 #60137] DEBUG -- : MONGODB | Server parbiter1.myorg.io:27017 initializing.
W, [2019-05-16T12:28:58.086649 #60137] WARN -- : MONGODB | Removing server xx.xx.x.xxx:27017 because it reported itself as pmongo2.myorg.io:27017
D, [2019-05-16T12:28:58.807027 #60137] DEBUG -- : MONGODB | EVENT: #<ServerDescriptionChanged address=pmongo2.myorg.io:27017 topology=ReplicaSetNoPrimary[xx.xx.x.xxx:27017,pmongo1.myorg.io:27017,pmongo2.myorg.io:27017,parbiter1.myorg.io:27017,name=some_name] ...>>
D, [2019-05-16T12:28:58.808115 #60137] DEBUG -- : MONGODB | Server description for pmongo2.myorg.io:27017 changed from 'unknown' to 'secondary'.
D, [2019-05-16T12:28:58.810403 #60137] DEBUG -- : MONGODB | EVENT: #<TopologyChanged prev=ReplicaSetNoPrimary[xx.xx.x.xxx:27017,pmongo1.myorg.io:27017,pmongo2.myorg.io:27017,parbiter1.myorg.io:27017,name=some_name] new=ReplicaSetNoPrimary[pmongo1.myorg.io:27017,pmongo2.myorg.io:27017,parbiter1.myorg.io:27017,name=some_name]>
D, [2019-05-16T12:28:58.810826 #60137] DEBUG -- : MONGODB | Topology type 'ReplicaSetNoPrimary' changed to type 'ReplicaSetNoPrimary'.
Во втором методе я не уверен, правильно ли я делаю, или как-то испортил его конфигурацию.
Можеткто-нибудь, пожалуйста, помогите мне понять это правильно?