我有一个包含3个节点的小型mongoDB集群(没有分片,只有复制)。现在,插入主节点正在按预期将新数据传播到辅助节点(基本复制)。我正在使用java和hibernate。
现在我想要的是在整个副本集中对读取请求进行负载均衡,而不是始终用于提供数据的主节点。有没有办法告诉hibernate(通过查询字符串)有关可用的服务器以及hibernate以某种方式分发请求(随机或以系统方式)?什么是实现负载平衡的正确方法?
答案 0 :(得分:1)
您要查找的设置称为读取偏好。如果您查看doc here,您会发现:
<强> hibernate.ogm.mongodb.read_preference 强>
指定在针对MongoDB数据存储区发出读取时应用的ReadPreference。可能的设置是(值的 ReadPreferenceType枚举):PRIMARY,PRIMARY_PREFERRED,SECONDARY, SECONDARY_PREFERRED 和NEAREST。
在这种情况下你可能会使用的是SECONDARY_PREFERRED,这实际上意味着默认情况下读取操作将路由到从属节点,但如果这是剩下的唯一可用节点,则hibernate将回退到主节点。