【发布时间】:2014-08-26 23:25:09
【问题描述】:
我应该何时致电MongoClient.GetServer() 和MongoServer.GetDatabase()?
以前我在启动时创建了一个 MongoDatabase 实例并将其用于所有操作。问题是当发生故障转移时,主节点变成不同的节点,导致实例不正确。
每次操作我都应该拨打myClient.GetServer().GetDatabase(myDatabaseName)吗?这可能是最正确的,尽管在故障转移期间某些调用无论如何都会失败。我很想为至少一组操作重用同一个数据库实例。
我主要担心的是频繁调用GetServer() 和GetDatabase() 会引入开销。我确信驱动程序会使用连接池并希望它会缓存实例,但我不知道它何时必须与服务器通信。
【问题讨论】: