現在、MongoDBのレプリカセットを使用するアプリケーションを作成しています。これは、Spring Bootベースのアプリケーションであり、次のプロパティは1つのサーバーに接続するのに完璧に機能します。
spring.data.mongodb.Host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=demo
これは、私のローカル開発環境にとってはまったく問題ありません。しかし、後でMongoDBレプリカセットに対して実行する必要があるため、少なくとも2つ、より良い3つのレプリカセットシードを提供する必要がありますが、プロパティでこれを行うにはどうすればよいですか?
私はこのページを見ました: http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html 、しかし明示的なものはありません上記のレプリカセットのプロパティ。次のようなアドレスのコンマ区切りリストを提供します。
spring.data.mongodb.Host=127.0.0.1,127.0.1.1,127.0.2.1
spring.data.mongodb.uri=mongo://127.0.0.1,mongo://127.0.0.1:27018
(次々と試しました。)
これも機能していません(実際、Springがデフォルトの構成を使用できるようにする例外を生成します)。
また、次のconfig.xmlを使用しようとしましたが、うまくいきませんでした。
<?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:context="http://www.springframework.org/schema/context"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation=
"http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<mongo:mongo id="replicaSetMongo" replica-set="127.0.0.1:27017,localhost:27018"/>
</beans>
上記の構成はわずかに異なることを知っていますが、現在試みているのは、到達できないレプリカセットノードがないことを示す例外を取得することです。
アイデア、ヒントはありますか?
それに対する明示的なサポートはありません。ただし、uri
パラメーターを使用して、適切に構成できるはずです。
実際に更新しました ドキュメント 最近。
同様の問題が発生し、MongoProperties::createMongoClient()
コードを掘り下げたところ、spring.data.mongodb.Host
、spring.data.mongodb.port
、spring.data.mongodb.username
またはspring.data.mongodb.password
。
すべての情報をURIに入れた場合(および他のすべてのspring.data.mongodb.*
プロパティファイルの値)、接続コードは機能しました。
URIプロパティの設定は次のようになりました。
mongodb://username:mypasswd@hostname1:27017,hostname2:27017,hostname3:27017/dbname
URI値をフォーマットするためのドキュメントは here です。
これからapplication.propertiesを変更:
spring.data.mongodb.Host=server1
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=system
spring.data.mongodb.database=database
...これまで:
spring.data.mongodb.uri=mongodb://username:password@server1:port,server2:port/database