2016-09-15 24 views
1

我有一個春季啓動服務器,我想將它連接到我的mongoDB副本集。 (該組中3個服務器)如何設置春季開機的副本集?

1.in application.properties我配置: spring.data.mongodb.uri = mongodb的://用戶:[email protected]:27017 /管理 但如果我嘗試寫入服務器,這不是主要的我得到錯誤。所以我怎麼配置它,我的春季啓動應用程序總是知道誰是主要的,並寫入主要?

我知道有寫一個選項: spring.data.mongodb.uri =的mongodb://用戶:[email protected]:27017,172.1.1.2:27017,172.1.1.3:27017 /管理

但將我的異常:

2016年9月11日14:14:54.811 INFO 3128 --- [-31-61-35:27017] org.mongodb.driver.cluster:異常在監視器線程連接到服務器ip-172-1-1-2:27017

com.mongodb.MongoSocketOpenException:異常打開套接字 在com.mongodb.connection.SocketStream.open(SocketS tream.java:63)〜[mongodb-driver-core-3.2.2.jar:na] at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:114)〜[mongodb-driver-core-3.2。 2.jar:na] at com.mongodb.connection.DefaultServerMonitor $ ServerMonitorRunnable.run(DefaultServerMonitor.java:128)〜[mongodb-driver-core-3.2.2.jar:na] at java.lang.Thread。運行(Thread.java:745)[na:1.8.0_101] 引起:java.net.SocketTimeoutException:連接超時 at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)〜[na:1.8.0_101] 在java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)〜[na:1.8.0_101] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)〜[na:1.8.0_101] at java .net.AbstractP lainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)〜[na:1.8.0_101] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)〜[na:1.8.0_101] at java.net.PlainSocketImpl。連接(PlainSocketImpl.java:172)〜[na:1.8.0_101] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)〜[na:1.8.0_101] at java.net.Socket.connect Socket.java:589)〜[na:1.8.0_101] at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50)〜[mongodb-driver-core-3.2.2.jar:na] at com.mongodb.connection.SocketStream.open(SocketStream.java:58)〜[mongodb-driver-core-3.2.2.jar:na] ... 3通用幀被省略

  1. 我總是連接到管理數據庫。但我需要訪問另一個數據庫,因爲我的集合在那裏。我如何配置用戶將連接到所有數據庫? ,因爲此用戶將使用不同的dbs和不同的集合?

非常感謝

回答

0

這對方的回答(How to configure spring-data-mongodb to use a replica set via properties),從@nwolfe的不接受的答案之一這樣說:

...發現代碼被忽略的URI值,如果有任何 值配置爲spring.data.mongodb.host, spring.data.mongodb.port,spring.data.mongodb.usernamespring.data.mongodb.password。如果我把所有的信息都放到了uri (並從 屬性文件中刪除了所有其他的spring.data.mongodb。*值),那麼連接代碼就可以工作了。

spring doc

您可以設置spring.data.mongodb.uri屬性來更改URL和 配置其他設置,如副本集:

spring.data.mongodb .uri = mongodb:// user:[email protected]:12345,mongo2.example.com:23456/test