文章目录
- 一.主从复制:
- 二.哨兵机制:
一.主从复制:
主从复制顾名思义就是一台主服务器搭配多台机器做为从服务器,用来解决数据的冗余备份,从节点只具有同步数据的功能,并不能进行故障迁移。可以把主机当做一个骑士,而从机就是骑士的跟班,跟班只能帮忙扛下装备分担下重量,并不能代替骑士来战斗。
下面演示主从复制搭建(用一台机器模拟三台机器):
二.哨兵机制:
哨兵(sentinel)是由一个或多个哨兵实例组成的哨兵系统,可以监视多个主服务器,以及这些主服务器下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线之主机属下的某个从机升级为新的主机,也就是具有故障迁移的主从架构,可以说是建立在主从复制上的升级版。相比主从复制,哨兵机制明显更先进,主从复制中跟班永远是跟班,而哨兵机制中当骑士阵亡后跟班也有机会翻身做主晋身为骑士从而继续战斗,明摆着多了上升空间嘛。哨兵系统相当于督战队,哨兵就相当于监军,督战队里有一名或多名监军,对骑士及以下人员进行监控,骑士阵亡后负责利用选举机制从跟班中选出一个新的骑士。
以下为搭建哨兵架构的演示:
接下来演示多哨兵:
通过springboot操作哨兵:
以上配置要统一改成本机对外IP才能在Springboot中使用有点坑,但其实也不是坑,毕竟项目配置的都是机器对外IP,只是个人单机模拟要注意。
同时哨兵配置文件中也可以进行其它配置:
sentinel down-after-milliseconds mymaster 5000
修改心跳检测5000毫秒——时间内master无反应会被判定为宕机,开始选举。
sentinel parallel-syncs mymaster 1
故障迁移时,最多只有1个从机(这台从机此时不可用)对主机进行同步——可同步数量越少越慢,但是越多就代表越多的从机不可用。
sentinel failover-timeout mymaster 15000
故障迁移等待时间,超过这个数就判定为真正的宕机。
sentinel auth-pass mymaster 123456
哨兵密码认证(如果redis设置了密码)
哨兵机制实现了故障迁移功能,但是能起作用的还只是单节点(一台主机),无法应对高并发问题,并且单节点还面临内存和磁盘容量的物理上限问题。想要解决上述问题就得使用集群。