Redis 哨兵架构基础
点击赠书:聊聊「分布式架构」那些事儿
1. 哨兵的介绍
sentinel , 中文是哨兵。
哨兵是redis 集群架构中非常重要的一个组件,主要功能如下:
(1)集群监控:负责监控reidis master 和slave 进程是否正常工作;
(2)消息通知:如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员;
(3)故障转移:如果master node挂掉了,会自动转移到slave node上;
(4)配置中心:如果故障转移发生了,通知client 客户端新的master 地址;
哨兵本身也是分布式的作为一个哨兵集群去运行,互相协同工作;
(1)故障转移时, 判断一个master node宕机了,需要大部分的哨兵都同意才行,涉及到了分布式选举的问题;
(2)即使部分哨兵节点挂了,哨兵集群还是能正常工作的,因为如果 一个作为高可用机制重要组成部分的故障转移系统本身是单点的,那就坑爹了;目前采用的是sentinel 2 版本,sentinel2 相对于 sentinel 1 来说,重写了很多代码,主要是让故障转移的机制和算法变得更加健壮和简单。
2. 哨兵的核心知识
(1)哨兵至少需要3个实例,来保证自己的健壮性;
(2)哨兵+redis 主从的部署架构,是不会保证数据0丢失的,只能保证redis 集群的高可用性;
(3)对于哨兵+redis主从这种负责的部署架构,尽量在测试环境和生产环境,都进行充足的测试和演练;
3. 为什么redis 哨兵集群只有2个节点无法正常工作?
哨兵集群必须部署2个以上节点,如果哨兵集群仅仅部署了2个哨兵实例,quorum=1
M1 R1
S1 S2
Configuration:quorum = 1 (哨兵节点只要1个认为宕机就可以进行切换了)
master 宕机,s1 和 s2 中只要有一个哨兵认为宕机就可以进行切换,同时s1和s2中会选举出一个哨兵来进行故障转移,同时这个时候,需要majority,也就是大多数哨兵都是运行的,2个哨兵的majority就是2,2个哨兵都运行这,就可以允许执行故障转移,但是整个M1和S2运行的机器宕机了,那么哨兵只有1个了,此时就没有majority来允许执行故障转移,虽然另外一台机器还有一个R1,但是故障转移不会执行;
4. 经典的3节点哨兵集群
M1
S1
R2 R3
S2 S3
Configuration:quorum = 2 majoiry
如果M1所在机器宕机了,那么3个哨兵还剩下2个,S2和S3可以一致认为master 宕机,然后选举一个来执行故障转移;同时3个哨兵的majoiry = 2 , 所以还剩下2个哨兵运行着,就可以进行故障转移。
往期推荐
认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL:
实战篇:点赞功能,用 MySQL 还是 Redis 好 ?
为什么国内流行的 MyBatis ,国外 Java 工程师却不愿意使用?
盘点开发中那些常用的MySQL优化
Spring 中 @Component、@Service 等注解如何被解析?
扫一扫,关注我
一起学习,一起进步
Redis 哨兵架构基础相关推荐
- Redis 哨兵架构
Redis 哨兵架构 1. 主从复制架构的局限 2. 哨兵架构 3. 哨兵工作步骤 4. 获取主服务器信息 5. 获取从服务器信息 6. 向主服务器和从服务器发送信息 7. 接受来自主服务器和从服务器 ...
- 10.Redis哨兵架构
概述 sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点.如果redis的主节点挂掉,利用哨兵机制,可以从剩下的从节点中选出主节点,弥补了上一节讲的主从复制架构 ...
- Redis学习(一)之 持久化、主从与哨兵架构
jiaruredis持久化 RDB快照:在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中. 你可以对 Redis 进行设置, 让它在" N 秒内数据 ...
- Redis深入理解五 :Redis主从架构、哨兵架构、高可用集群模式
redis主从架构 redis主从架构搭建,配置从节点步骤: 复制一份redis.conf文件 将相关配置修改为如下值: port 6380 pidfile /var/run/redis_6380.p ...
- 【redis学习篇】哨兵架构详解
一.哨兵架构概要 sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点. sentinel实时监视主从集群,能实时知道哪个节点是主节点,哪些是从节点,哨兵架构下c ...
- k8s redis集群_基于K8S部署redis哨兵集群
本 文 主 要 内 容 什么是Kubernetes分布式容器管理平台 PaaS平台redis-sentinel集群架构简介 PaaS平台部署redis哨兵集群 redis-sentinel容器测试及验 ...
- REDIS哨兵【Sentinel】模式+哨兵的核心知识点+redis哨兵主从切换的数据丢失问题+上一章铺垫的【异步复制数据丢失问题】+【集群脑裂】
1.redis哨兵模式的前言: 一年一度的问题来了,为啥子要用redis的哨兵模式的呢? 简单粗暴的理解下子,顺带开个玩笑,没有理解好,还望不要见笑: 其实redis的哨兵模式,个人理解:只是说法搞大 ...
- 解锁新技能《docker如何搭建Redis哨兵模式》
在我们搭建Redis哨兵架构时我们先了解一些Redis及其相关的一些知识: 问题:Redis是什么? Redis是C语言开发的一个开源的,遵从BSD协议的高性能键值对(key-value)内存数据库, ...
- redis学习笔记(6)之redis哨兵
redis哨兵 redis哨兵初识 基础概念 主从复制的问题 redis 哨兵的高可用性 redis哨兵安装和部署 部署结构 内容来源为六星教育,这里仅作为学习笔记 redis哨兵初识 redis的主 ...
最新文章
- (三)AJAX基本介绍和简单实例03
- next_permutation(,)用法
- GDCM:gdcm::Parser的测试程序
- 选择比努力更重要,面试新公司,从哪些细节能判断公司的前途?项目的好坏?...
- svr公式推导_支持向量回归(SVR)的详细介绍以及推导算法
- 工作207:修改表头按钮样式
- 科学家用计算机模拟后确认 60个n原子,科学家用计算机模拟后确认,60个N原子可结合成N60分子。下列关于N60的叙述中正确的是A.N60是一种新型的化合物...
- cinder连接mysql数据库_Openstack入门篇(十六)之Cinder服务的部署与测试
- 网络安全——浅谈——AAA认证技术——登录授权、配置命令
- python异步回调实现原理_快速理解Python异步编程的基本原理
- C类型和存储方式的语言变量
- myeclipse下载_资源共享:常用的编程软件下载链接分享
- RS485、RS232、RS422的 特点 和 区别
- i9023 中国联通 3G 西安信息中心号码
- 帝国霸业服务器无限加载,帝国霸业银河生存1.0正式版开局生存流程指南
- 洛谷 P1378 油滴扩展
- C++(30)—奇偶数判断
- NOIP 2015 d1t2 信息传递
- zip直链生成网站_调优-WEB资讯专栏-DMOZ中文网站分类目录
- Hive面试题系列第三题-用户留存问题
热门文章
- python 3.10 新增 switch-case 简介
- linux c/c++ 原子操作库 atomic atomic_flag 简介
- linux systemd-logind 进程cpu占用100% 解决方法
- linux shell 小数计算
- linux shell 缺少 ps 命令
- dns劫持简介 https流量数据获取原理
- SET-UID程序漏洞实验
- linux automake-1.16 编译错误 Try `--no-discard-stderr' if option outputs to stderr
- java设计模式---三种工厂模式之间的区别
- UNIX中文件描述符和文件指针