MongoDB的读策略
从哪里读?
readPerference 决定使用哪一个节点来满足正在发起的请求,如下选项
primary:只选择主节点(默认选项)
primaryPreferred:优先选择主节点,如果不可用则用到从节点
secondary:只选择从节点
secondaryPreferred:优先选择从节点,如果从节点不管用则选择主节点
nearest:选择最近的节点
场景
primary/primaryPreferred
用户下单后马上将用户转到订单详情页(查询时效性要求)
secondary/secondaryPreferred
用户自己查询自己下过的订单(查询历史订单对时效性要求不高)
secondary
生成报表
报表对时效性要求不高大,但资源需求大,可以在从节点处理
nearest
将用户内容发送到全世界,用户就近节点读取
Tag
readPerference 只能控制使用一类节点,Tag可以控制选择到一个或几个节点。
一个5个节点的复制集
3个节点硬件较好,用于服务线上客户
2个节点硬件较差,用于生成报表
可以用Tag来达到控制效果
3个较好的打上{purpose:“online”}
2个较差的打上{purpose:“analyse”}
在线读取指定online,报表指定analyse
什么样的数可以读?