MongoDB副本集利用java进行读写分离时,参数有:
primary:默认参数,只从主节点上进行读取操作;
primaryPreferred:大部分从主节点上读取数据,只有主节点不可用时从secondary节点读取数据。
secondary:只从secondary节点上进行读取操作,存在的问题是secondary节点的数据会比primary节点数据“旧”。
secondaryPreferred:优先从secondary节点进行读取操作,secondary节点不可用时从主节点读取数据;
nearest:不管是主节点、secondary节点,从网络延迟最低的节点上读取数据。
例如:
ReadPreference preference = ReadPreference. secondary();
MongoClientOptions.Builder build = new MongoClientOptions.Builder();
build.readPreference(secondary);
MongoDB副本集的组成成员:
- 主节点
- 副本节点
- 仲裁节点
- Secondary-Only:不能成为primary节点,只能作为secondary副本节点,防止一些性能不高的节点成为主节点。
- Hidden:这类节点是不能够被客户端制定IP引用,也不能被设置为主节点,但是可以投票,一般用于备份数据。
- Delayed:可以指定一个时间延迟从primary节点同步数据。主要用于备份数据,如果实时同步,误删除数据马上同步到从节点,恢复又恢复不了。
- Non-Voting:没有选举权的secondary节点,纯粹的备份数据节点。