Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Spring的MongoDB复制_Java_Spring_Mongodb_Spring Mvc_Database Replication - Fatal编程技术网

Java 使用Spring的MongoDB复制

Java 使用Spring的MongoDB复制,java,spring,mongodb,spring-mvc,database-replication,Java,Spring,Mongodb,Spring Mvc,Database Replication,我在本地机器上用MongoDB配置了Spring,没有复制,一切正常。 我还有一个复制集,可以正常工作 现在我尝试添加副本集,但读/写操作仍会转到本地计算机 这是我的配置,主机1-3是虚拟机: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-in

我在本地机器上用MongoDB配置了Spring,没有复制,一切正常。 我还有一个复制集,可以正常工作

现在我尝试添加副本集,但读/写操作仍会转到本地计算机

这是我的配置,主机1-3是虚拟机:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/tx
                    http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
                    http://www.springframework.org/schema/aop
                    http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
                    http://www.springframework.org/schema/data/mongo
                    http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd">

<mongo:repositories base-package="my.repositories" />

<mongo:mongo replica-set="host1:27017,host2:27017,host3:27017" />

<mongo:db-factory dbname="my_db" />

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>

有人有想法/建议吗?谢谢

编辑: 好的,我发现了问题,只需要将mongo ref添加到工厂。因此,正确的配置是:

<mongo:mongo id="mongo" replica-set="host1:27017,host2:27017,host3:27017" />

<mongo:db-factory dbname="my_db" mongo-ref="mongo" />
<mongo:mongo id="mongo" replica-set="host1:27017,host2:27017,host3:27017">
<mongo:db-factory dbname="my_db" mongo-ref="mongo" />


写入操作将始终转到主服务器。默认情况下,读操作将转到主操作,除非在使用中更改。写入操作将始终转到主操作。默认情况下,读取将转到主目录,除非您在使用中更改。

确定,因此我发现了问题,只需将mongo ref添加到工厂。因此,正确的配置是:

<mongo:mongo id="mongo" replica-set="host1:27017,host2:27017,host3:27017" />

<mongo:db-factory dbname="my_db" mongo-ref="mongo" />
<mongo:mongo id="mongo" replica-set="host1:27017,host2:27017,host3:27017">
<mongo:db-factory dbname="my_db" mongo-ref="mongo" />

好的,所以我发现了问题,只需要将mongo ref添加到工厂。因此,正确的配置是:

<mongo:mongo id="mongo" replica-set="host1:27017,host2:27017,host3:27017" />

<mongo:db-factory dbname="my_db" mongo-ref="mongo" />
<mongo:mongo id="mongo" replica-set="host1:27017,host2:27017,host3:27017">
<mongo:db-factory dbname="my_db" mongo-ref="mongo" />


我知道,但主计算机不是我的本地计算机,而是主机1(VM)。问题是读写操作都会转到本地主机,而不是VM(这是我试图配置spring所要做的)。我知道,但主主机不是我的本地机器,它是host1(VM)。问题是读和写都会转到本地主机,而不是VM(这就是我试图配置spring的目的)。