2013-11-28 25 views
2

我在本地機器上配置了Spring與MongoDB,沒有複製,並且一切正常。 我也有一個副本集,工作正常。與Spring的MongoDB複製

現在我試圖添加副本集,但讀取/寫入仍然會到我的本地機器!

這是我的配置,host1-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" /> 

回答

4

好吧,我發現問題,只需要添加mongo-ref到工廠。所以正確的配置是:

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

寫入將始終轉到主要。除非您在使用Java driver時更改Read Preference,否則默認情況下將轉至主要。

+0

我知道,但主要不是我的本地機器,它是host1(VM)。 問題是讀取和寫入都轉到本地主機而不是VM(這是我試圖配置spring做的)。 – Ayelet