一、为什么需要 MongoDB 副本集配置
副本集配置为数据库提供了高可用的保证,mongodb 副本集能够支持在主节点宕机的情况进行自动选主、同时利用多个从节点进行数据冗余,达到数据热备份的作用,同时由于数据同步,可支持读写分离。
二、如何配置读写分离
通过 uri 参数进行配置,代码如下:
spring:
data:
mongodb:
uri: mongodb://username:password@ip1:port,ip2:port,ip3:port/db?slaveOk=true&replicaSet=rs&write=1&readPreference=secondaryPreferred
其中 readPreference 为读操作模式,支持以下参数:
- primary:默认模式,读操作只在主节点,如果主节点不可用则报错。
- primaryPreferred:读操作只在主节点,如果主节点不可用,则读取从节点。
- secondary:读操作只在从节点,如果从节点不可用则报错。
- secondaryPreferred:读操作只在从节点,所有从节点不可用时,读取主节点。
- nearest:读操作只在最邻近的节点。
三、实际使用中需要注意的问题
注意以下几点:1. 事务操作仅支持在主节点模式。2. 读写分离常见问题,写后立刻取则有可能取到的数据为空。