gpt4 book ai didi

java - 多个 MongoDB 连接到多个 mongo 路由器 (mongos.exe)

转载 作者:行者123 更新时间:2023-11-28 22:30:49 25 4
gpt4 key购买 nike

我有一个系统,其中有多个 mongo 分片(在大型 AWS 实例上)、3 个 mongo 配置(在小型 AWS 实例上)和 3 个正在运行的 mongo 路由器“mongos.exe”(它们与应用程序在同一实例上,即2 个 Tomcat 和 1 个 Java 应用程序)。

所以我的问题是,每个应用程序(例如 tomcat 1)是否应该与那个盒子上的 mongos.exe 对话,并且只与那个盒子上的 mongos.exe 对话,或者它是否也应该与其他 2 个盒子上的 mongos.exe 有连接(我'我认为这里没有单点故障)。

在 mongo 文档中 http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/您可以使用以下方法连接到多个 mongo:-

// or, to connect to a replica set, with auto-discovery of the primary, supply a seed list of members
MongoClient mongoClient = new MongoClient(Arrays.asList(
new ServerAddress("localhost", 27017),
new ServerAddress("localhost", 27018),
new ServerAddress("localhost", 27019)));

这是要走的路吗?如果是这样,我的最后一个问题是,Spring 配置是什么样的?我在应用程序上的 spring 配置如下所示:-

<mongo:mongo host="${db.host}" port="${db.port}">
<mongo:options threads-allowed-to-block-for-connection-multiplier="${db.threadsAllowedToBlockForConnectionMultiplier}"
connections-per-host="${db.connectionsPerHost}"
connect-timeout="${db.connectTimeout}"
max-wait-time="${db.maxWaitTime}"
auto-connect-retry="${db.autoConnectRetry}"
socket-timeout="${db.socketTimeout}"/>
</mongo:mongo>

<mongo:db-factory dbname="${db.name}" mongo-ref="mongo" />

非常感谢任何建议。

最佳答案

我找到了 this thread并给出正确答案。

<mongo:mongo id="replicaSetMongo" replica-set="127.0.0.1:27017,localhost:27018"/>

我试过了,也可以使用单个主机,就像“主机”属性一样。

关于java - 多个 MongoDB 连接到多个 mongo 路由器 (mongos.exe),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19495585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com