在生产环境中,我们会得到源源不断的看似随机的 Mongo::Error::NoServerAvailable 错误。可能一天3个。
有问题的副本集没有经历过任何选举,在这些情节中它的表现并没有什么不寻常的地方。
这是完整的例外:
Mongo::Error::NoServerAvailable: No server is available matching preference: #<Mongo::ServerSelector::Primary:0x70286341840160 tag_sets=[] server_selection_timeout=30 local_threshold=0.015>
这是堆栈跟踪的 mongoid 部分:
vendor/bundle/ruby/2.3.0/gems/mongoid-5.1.3/lib/mongoid/criteria/findable.rb:75 in multiple_from_db
vendor/bundle/ruby/2.3.0/gems/mongoid-5.1.3/lib/mongoid/criteria/findable.rb:19 in execute_or_raise
vendor/bundle/ruby/2.3.0/gems/mongoid-5.1.3/lib/mongoid/criteria/findable.rb:40 in find
vendor/bundle/ruby/2.3.0/gems/mongoid-5.1.3/lib/mongoid/findable.rb:94