点击赠书:聊聊「分布式架构」那些事儿

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 哨兵架构基础相关推荐

  1. Redis 哨兵架构

    Redis 哨兵架构 1. 主从复制架构的局限 2. 哨兵架构 3. 哨兵工作步骤 4. 获取主服务器信息 5. 获取从服务器信息 6. 向主服务器和从服务器发送信息 7. 接受来自主服务器和从服务器 ...

  2. 10.Redis哨兵架构

    概述 sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点.如果redis的主节点挂掉,利用哨兵机制,可以从剩下的从节点中选出主节点,弥补了上一节讲的主从复制架构 ...

  3. Redis学习(一)之 持久化、主从与哨兵架构

    jiaruredis持久化 RDB快照:在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中. 你可以对 Redis 进行设置, 让它在" N 秒内数据 ...

  4. Redis深入理解五 :Redis主从架构、哨兵架构、高可用集群模式

    redis主从架构 redis主从架构搭建,配置从节点步骤: 复制一份redis.conf文件 将相关配置修改为如下值: port 6380 pidfile /var/run/redis_6380.p ...

  5. 【redis学习篇】哨兵架构详解

    一.哨兵架构概要 sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点. sentinel实时监视主从集群,能实时知道哪个节点是主节点,哪些是从节点,哨兵架构下c ...

  6. k8s redis集群_基于K8S部署redis哨兵集群

    本 文 主 要 内 容 什么是Kubernetes分布式容器管理平台 PaaS平台redis-sentinel集群架构简介 PaaS平台部署redis哨兵集群 redis-sentinel容器测试及验 ...

  7. REDIS哨兵【Sentinel】模式+哨兵的核心知识点+redis哨兵主从切换的数据丢失问题+上一章铺垫的【异步复制数据丢失问题】+【集群脑裂】

    1.redis哨兵模式的前言: 一年一度的问题来了,为啥子要用redis的哨兵模式的呢? 简单粗暴的理解下子,顺带开个玩笑,没有理解好,还望不要见笑: 其实redis的哨兵模式,个人理解:只是说法搞大 ...

  8. 解锁新技能《docker如何搭建Redis哨兵模式》

    在我们搭建Redis哨兵架构时我们先了解一些Redis及其相关的一些知识: 问题:Redis是什么? Redis是C语言开发的一个开源的,遵从BSD协议的高性能键值对(key-value)内存数据库, ...

  9. redis学习笔记(6)之redis哨兵

    redis哨兵 redis哨兵初识 基础概念 主从复制的问题 redis 哨兵的高可用性 redis哨兵安装和部署 部署结构 内容来源为六星教育,这里仅作为学习笔记 redis哨兵初识 redis的主 ...

最新文章

  1. (三)AJAX基本介绍和简单实例03
  2. next_permutation(,)用法
  3. GDCM:gdcm::Parser的测试程序
  4. 选择比努力更重要,面试新公司,从哪些细节能判断公司的前途?项目的好坏?...
  5. svr公式推导_支持向量回归(SVR)的详细介绍以及推导算法
  6. 工作207:修改表头按钮样式
  7. 科学家用计算机模拟后确认 60个n原子,科学家用计算机模拟后确认,60个N原子可结合成N60分子。下列关于N60的叙述中正确的是A.N60是一种新型的化合物...
  8. cinder连接mysql数据库_Openstack入门篇(十六)之Cinder服务的部署与测试
  9. 网络安全——浅谈——AAA认证技术——登录授权、配置命令
  10. python异步回调实现原理_快速理解Python异步编程的基本原理
  11. C类型和存储方式的语言变量
  12. myeclipse下载_资源共享:常用的编程软件下载链接分享
  13. RS485、RS232、RS422的 特点 和 区别
  14. i9023 中国联通 3G 西安信息中心号码
  15. 帝国霸业服务器无限加载,帝国霸业银河生存1.0正式版开局生存流程指南
  16. 洛谷 P1378 油滴扩展
  17. C++(30)—奇偶数判断
  18. NOIP 2015 d1t2 信息传递
  19. zip直链生成网站_调优-WEB资讯专栏-DMOZ中文网站分类目录
  20. Hive面试题系列第三题-用户留存问题

热门文章

  1. python 3.10 新增 switch-case 简介
  2. linux c/c++ 原子操作库 atomic atomic_flag 简介
  3. linux systemd-logind 进程cpu占用100% 解决方法
  4. linux shell 小数计算
  5. linux shell 缺少 ps 命令
  6. dns劫持简介 https流量数据获取原理
  7. SET-UID程序漏洞实验
  8. linux automake-1.16 编译错误 Try `--no-discard-stderr' if option outputs to stderr
  9. java设计模式---三种工厂模式之间的区别
  10. UNIX中文件描述符和文件指针