MongoDB负载均衡的Hibernate配置

时间:2016-02-23 09:59:23

标签: java mongodb hibernate database-replication hibernate-ogm

我有一个包含3个节点的小型mongoDB集群(没有分片,只有复制)。现在,插入主节点正在按预期将新数据传播到辅助节点(基本复制)。我正在使用java和hibernate。

现在我想要的是在整个副本集中对读取请求进行负载均衡,而不是始终用于提供数据的主节点。有没有办法告诉hibernate(通过查询字符串)有关可用的服务器以及hibernate以某种方式分发请求(随机或以系统方式)?什么是实现负载平衡的正确方法?

1 个答案:

答案 0 :(得分:1)

您要查找的设置称为读取偏好。如果您查看doc here,您会发现:

  

<强> hibernate.ogm.mongodb.read_preference

     

指定在针对MongoDB数据存储区发出读取时应用的ReadPreference。可能的设置是(值的   ReadPreferenceType枚举):PRIMARY,PRIMARY_PREFERRED,SECONDARY,    SECONDARY_PREFERRED 和NEAREST。

在这种情况下你可能会使用的是SECONDARY_PREFERRED,这实际上意味着默认情况下读取操作将路由到从属节点,但如果这是剩下的唯一可用节点,则hibernate将回退到主节点。