一. 配置文件方式
<!-- 读写分离级别配置 -->
<!-- 首选主节点,大多情况下读操作在主节点,如果主节点不可用,如故障转移,读操作在从节点。 -->
<bean id="primaryPreferredReadPreference" class="com.mongodb.TaggableReadPreference.PrimaryPreferredReadPreference"></bean>
<!-- 最邻近节点,读操作在最邻近的成员,可能是主节点或者从节点。 -->
<bean id="nearestReadPreference" class="com.mongodb.TaggableReadPreference.NearestReadPreference"></bean>
<!-- 从节点,读操作只在从节点, 如果从节点不可用,报错或者抛出异常。存在的问题是secondary节点的数据会比primary节点数据旧。 -->
<bean id="secondaryReadPreference" class="com.mongodb.TaggableReadPreference.SecondaryReadPreference"></bean>
<!-- 优先从secondary节点进行读取操作,secondary节点不可用时从主节点读取数据 -->
<bean id="secondaryPreferredReadPreference" class="com.mongodb.TaggableReadPreference.SecondaryPreferredReadPreference"></bean> <!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 --> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/> <constructor-arg name="mongoConverter" ref="mappingConverter" /> <!-- 配置读写分离的模式:默认主节点模式,读操作只在主节点,如果主节点不可用,报错或者抛出异常。 --> <!-- <property name="readPreference" ref="secondaryPreferredReadPreference"></property> --></bean>
二. 通过mongoTemplate对象
mongoTemplate.setReadPreference(readPreference);