0

我有一个用 Java 编写的应用程序,在我控制它之前是由其他人编写的。我们正在使用带有副本集的 MongoDB。我知道,为了正确使用副本集,您需要向驱动程序传递与副本集关联的所有服务器的“种子列表”,以便它选择主服务器。

问题是应用程序正在使用 Hibernate 连接到 MongoDB。有没有办法在 Hibernate xml 配置文件中指定种子列表?下面是我们在应用程序中配置的示例。

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.ogm.datastore.provider">MONGODB</property>
        <property name="dialect">org.hibernate.ogm.dialect.mongodb.MongoDBDialect</property>
        <property name="hibernate.ogm.mongodb.database">databasename</property>
        <property name="hibernate.ogm.mongodb.host">192.168.1.10</property>
        <property name="hibernate.ogm.mongodb.port">27017</property>
        <mapping resource="mongodb.hbm.xml" />
    </session-factory>
</hibernate-configuration>

我试图在此配置的属性列表中查找文档,但没有看到任何有关为种子列表指定多个主机的信息;hibernate.ogm.mongodb.host是我能找到的唯一东西,据我所知,它只支持 1 个主机。

关于如何使用休眠使当前应用程序与副本集种子列表一起工作的任何想法?

4

1 回答 1

0

最新版本的 Hibernate OGM 通过以下属性支持此功能:

hibernate.ogm.datastore.host

这是一个有效值的示例:

www.example.com, www2.example.com:123, 192.0.2.1, 192.0.2.2:123, 2001:db8::ff00:42:8329, [2001:db8::ff00:42:8329]:123

默认值为 127.0.0.1:27017。如果未定义,则默认端口为 27017。

官方文档中有更多细节

于 2016-11-14T15:30:25.850 回答