如何使用Hibernate和MongoDB的副本集种子列表

时间:2014-01-16 18:19:46

标签: java hibernate mongodb hibernate-ogm

我有一个用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个主机。

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

1 个答案:

答案 0 :(得分: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。

official documentation

中有更多详情