Redis Sentinel集群部署
Slave可以适当设置优先级,除了0之外(0表示永远不提升为Master),越小的优先级,越有可能被提示为Master.如果Slave分布在多个机房,可以考虑将和Master同一个机房的Slave的优先级设置的更低以提升他被选为新的Master的可能性. 考虑到可用性和选举的需要,Sentinel进程至少为3个,推荐为5个.如果有网络分区,应当适当分布(比如2个在A机房,2个在B机房,一个在C机房)等. 客户端实现客户端从过去直接连接Redis,变成:
当Sentinel发起failover后,切换了新的Master,Sentinel会发送 如果需要实现读写分离,读走Slave,那可以走 其他由于Redis是异步复制,所以Sentinel其实无法达到强一致性,它承诺的是最终一致性:最后一次failover的Redis Master赢者通吃,其他Slave的数据将被丢弃,重新从新的Master复制数据.此外还有前面提到的分区带来的一致性问题. 其次,Sentinel的选举算法依赖时间,因此要确保所有机器的时间同步,如果发现时间不一致,Sentinel实现了一个TITL模式来保护系统的可用性.
(编辑:厦门网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |