programing

속성을 통해 복제 세트를 사용하도록 spring-data-mongodb를 구성하는 방법

newnotes 2023. 3. 26. 11:44
반응형

속성을 통해 복제 세트를 사용하도록 spring-data-mongodb를 구성하는 방법

저는 현재 MongoDB 복제 세트를 사용해야 하는 어플리케이션을 작성하고 있습니다.이것은 Spring Boot 기반의 어플리케이션으로, 1대의 서버에 접속하기 위한 다음의 속성은 정상적으로 동작합니다.

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=demo

이것은 내 지역 개발 환경에 매우 적합합니다.그러나 나중에 MongoDB 복제 세트에 대해 실행되어야 하므로 최소 2개의 더 나은 복제 세트 시드를 제공해야 합니다. 하지만 속성을 사용하여 어떻게 해야 합니까?

이 페이지에는 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

(조금씩 시도했습니다.)

이 방법도 동작하지 않습니다(실제로 스프링이 기본 구성을 사용할 수 있는 예외가 생성됩니다).

다음 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()uri 값이 설정되어 있는 경우, 코드가 uri 값을 무시하고 있는 것을 발견했습니다.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 값 형식을 지정하는 문서는 여기에 있습니다.

여기서 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

언급URL : https://stackoverflow.com/questions/31839777/how-to-configure-spring-data-mongodb-to-use-a-replica-set-via-properties

반응형