一、副本集(Replication Set)
复本集解决的问题的:
- 数据高可用,当主节点宕机,从节点可以马上顶上去,但是只是解决宕机问题,如果被黑了,或者数据被误删除了,从节点的数据依然也是被删除,这一点上是不可以保证数据的安全的
- 副本集可以解决mongodb的事务问题。
MongoDB的副本集至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据,建议提供仲裁节点,侧节点不存储数据,作用是当主节点出现故障时,选举出某个备用节点成为主节点,保证MongoDB的正常服务。客户端只需要访问主节点或者从节点,不需要访问仲裁节点。
MongoDB各个节点常见的搭配方式为:一主一从一仲裁,一主多从一仲裁,一主多从多仲裁。
主节点记录在其上的所有操作oplog(操作日志),从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点与主节点一致。
二、副本集实现思路
无论是主节点还是从节点,都是独立的mongo进程,可以放在不同的服务器上,也可以放在同一个服务器上,使用不同的端口号区分,即伪复本集,可以解决mongodb的事务问题
主节点和从节点,最好都配置开机自动启动,详细请见《Centos8上安装MongoDB4.X》
主从节点的配置文件要配置同样的复本集名字