在这里,我有一个mongo群集设置,其中包含两个配置服务器,两个分别具有3个节点和一个mongos服务器的分片。例如。
配置服务器 IP1配置 IP2 configsvr2
分片1 IP3 shardsvr1(主要) IP4 shardsvr2(中学) IP5 shardsvr3(中学)
分片2 IP6 shardsvr4(主要) IP7 shardsvr5(中学) IP8 shardsvr6(中学)
IP9 mongos
现在,是否可以在每个分片的特定节点上进行所有读取操作-
所有读取操作应在节点'shardsvr3'的分片1中执行,而在shardsvr6的分片2中执行。
请分享您的想法!
预先感谢
答案 0 :(得分:0)
探索之后,我知道可以在特定的辅助节点上执行所有读取操作。
这是执行此操作的几个步骤-
使用spring-data-mongodb
MongoClientOptions mongoClientOptions = MongoClientOptions.builder() .connectTimeout(connectionTimeoutInterval) .socketTimeout(socketTimeoutInterval) .serverSelectionTimeout(serverSelectionTimeoutInterval) .readPreference(TaggableReadPreference.secondary(新TagSet(createTagList()))) .build();
返回新的MongoClient(新的ServerAddress(主机,端口), Collections.singletonList(MongoCredential.createCredential(dbUserName,databaseName,dbPassword.toCharArray())), mongoClientOptions);