职业学院网站建设方案公司网站设计欣赏

pingmian/2025/10/14 7:46:55/文章来源:
职业学院网站建设方案,公司网站设计欣赏,qq表白链接,wordpress的后台文章图文发布目录 1. Redis 哨兵是什么#xff1f; 2. Redis 哨兵有什么用#xff1f; 2.1 主动监控 2.2 消息通知 2.3 故障转移 2.4 配置中心 3. Redis 哨兵数量配备要求 4. 哨兵配置文件详解 5. quorum 投票数详解 5.1 quorum 的含义 5.2 网络抖动导致主观下线 5.3 quorum …目录 1. Redis 哨兵是什么 2. Redis 哨兵有什么用 2.1 主动监控 2.2 消息通知 2.3 故障转移 2.4 配置中心 3. Redis 哨兵数量配备要求 4. 哨兵配置文件详解 5. quorum 投票数详解 5.1 quorum 的含义 5.2 网络抖动导致主观下线 5.3 quorum 票数达到设定值客观下线 6. 最好让所有 redis 服务器密码一致 7. 什么是 leader 哨兵领导者 8. Raft 算法选举 leader 哨兵领导者 9. leader 选取新 master 的规则 10. 从机变成 master 的过程 11. 解答哨兵数量配备问题 12. 哨兵的使用建议 前提须知本篇是 Redis 主从复制哨兵集群三板斧的第二篇建议同学先阅读过主从复制篇再来观看哨兵篇想必你会有更好的理解哦如果你已经懂了主从复制原理可以直接看正文。 Redis 主从复制哨兵集群——1主从复制篇-CSDN博客https://blog.csdn.net/m0_70325779/article/details/133878404?spm1001.2014.3001.5502 1. Redis 哨兵是什么 哨兵就像一个看守者看守某个东西在 Redis 中哨兵就是来看守服务器的状态的。 我们上一篇主从复制篇中提到过在主从复制服务器中主服务器宕机了从服务器不会上位而是一直等待主服务器恢复正常但是从服务器又没有写数据的权限就会导致整个业务面临中断甚至崩溃。所以我们就需要想一个办法在 master 主服务器宕机无法对外提供服务的时候从 slave 从服务器中挑选一个新的 master 继续对外提供服务保证我们业务的正常运行。 那么谁来做这件事呢就是我们的本篇文章重点要说的 哨兵。 2. Redis 哨兵有什么用 2.1 主动监控 哨兵可以监控主从 Redis 数据库运行是否正常 2.2 消息通知 哨兵可以将故障转移的结果发送给客户端让我们的运维人员知道哪台 redis 服务器可能出现了故障以便于及时恢复 2.3 故障转移 如果 master 主服务器发生了异常那么哨兵就会自动进行主从切换将其中一个 slave 从服务器作为新的 master 主服务器继续对外服务 2.4 配置中心 客户端通过连接哨兵来获得当前 Redis 服务的主节点地址 3. Redis 哨兵数量配备要求 在企业配备 Redis 哨兵的时候也是有默认要求的那就是 Redis 哨兵的数量不要少于三台并且必须是奇数台。如果不能满足以上要求干脆就不要用哨兵因为会有潜在风险。为什么哨兵的数量要选择奇数这和 Raft 算法选举 leader 哨兵领导者有关下面我会专门讲到这也是一个面试考点。 4. 哨兵配置文件详解 我们在安装 redis 之后它就已经给我们配备了哨兵的配置文件就存放在 Redis 安装目录下各位同学可以打开自己的 Redis 安装文件夹如下所示我使用 ls 命令展示我 redis-6.2.6 的所有文件这里可以看到 redis.conf 配置文件sentinel.conf 哨兵配置文件 等。 在面试和工作中几乎很少会让你配置哨兵的配置信息一般都会提前设定好直接粘贴进 redis 的配置文件即可但关于配置文件的各种配置的作用各位还是要记清楚的。 [rootlocalhost redis-6.2.6]# ls 00-RELEASENOTES CONDUCT COPYING INSTALL MANIFESTO redis.conf runtest runtest-moduleapi sentinel.conf tests utils BUGS CONTRIBUTING deps Makefile README.md redis.log runtest-cluster runtest-sentinel src TLS.md在 Redis 哨兵配置文件 sentinel.conf 中有几个比较重要的配置项我拿出来放到下边。 1bind0.0.0.0 2daemonize yes (yes开启表示后台运行) 3protected-mode no(no 表示关闭保护模式) 4port 26379 (26379为哨兵服务器端口6379为 redis 服务器端口两者不一样各位同学要分清哦) 5logfile 文件路径(logfile为哨兵日志文件和redis日志文件不是同一个后面双引号内部可以自定义日志文件路径) 6sentinel monitor mastername ip redis-port quorum  mastername 为主机名可自定义设置IP 就是要监控的主机IPredis-port 就是主机的端口号quorum 为投票数 举例如 sentinel monitor mymaster 121.41.67.181 6379 2 7sentinel auth-pass mastername password mastername 就是主机名称和上面的保持一致password 为监控主机的密码 举例如 sentinel auth-pass mymaster 123456 5. quorum 投票数详解 5.1 quorum 的含义 在上面第四点我重点标注了 quorum 为投票数这是我们理解哨兵机制必须要掌握的一个知识点。 总结为一句话就是至少有 quorum 个哨兵认为 master 主机该下线的时候master 主机就要客观下线并进行故障转移。 5.2 网络抖动导致主观下线 我们知道网络是不太可靠的而哨兵与主机之间又是通过网络发送心跳包来确认主机是否还在正常运行。在 sentinel.conf 配置文件中有这一配置项可以自定义配置时长假设为 30s如果网络抖动导致丢包又或是 master 主机真的出现了问题导致一个哨兵在 30s 时间内应该收到 master 主机发送过来的心跳反馈但实际却没有收到那么当前这台哨兵就会认为主机可能已经发生故障了当前哨兵就会对它投票认为它出故障该下线了换新的服务器上线作为主机但实际这台主机还没有下线只是当前这一台没有接收到心跳包的哨兵服务器认为它出故障该下线了这就是主观下线(Subjectively Down)。 下面这一段是我从 sentinel.conf 配置文件中摘下来的关于主观下线的部分注释和配置上面是这段英文的翻译 主服务器或任何附加的副本或哨兵应达到的毫秒数 # 无法访问例如不接受对 PING 的回复连续对于 # 指定时间段以便将其视为处于S_DOWN状态主观上 # 向下线。# Number of milliseconds the master (or any attached replica or sentinel) should # be unreachable (as in, not acceptable reply to PING, continuously, for the # specified period) in order to consider it in S_DOWN state (Subjectively # Down).# sentinel down-after-milliseconds master-name milliseconds // 配置示例 # Default is 30 seconds. // 从配置文件中不难看出 redis 默认是 30 秒 sentinel down-after-milliseconds mymaster 300005.3 quorum 票数达到设定值客观下线 我们假设每台哨兵只能投一票quorum 为投票数如果三台哨兵中有哨兵都没有收到 master 主机发送过来的心跳包那么当前哨兵就会与其余两台哨兵进行协商沟通没有收到心跳包的哨兵会投一票给当前 master认为它已经挂了如果三台哨兵有两台哨兵都分别投了一票此时已经有两票了认为 master 已经挂了而我们设置的 quorum 正好是 2已经达到下线要求了就算剩余的一台哨兵能收到主机发送的心跳包没有进行投票但是少数服从多数两台哨兵都认为主机已经出故障该下线了那么主机就要下线。 我设置 3 台哨兵quorum 值应该设置为 2超过一半 如果有 5 台哨兵quorum 值至少应该设置为 3超过一半 如果有 7 台哨兵quorum 值至少应该设置为 4超过一半 少数服从多数至少要一半以上的哨兵都认为主观下线了主机才能真正客观下线(Objectively Down)不能说一套烧饼认为master该下线了就真的让它下线只要没有达到 quorum 都只是主观下线没有真的下线。 6. 最好让所有 redis 服务器密码一致 我们在做主从复制架构的时候所有从机都要配置主机的密码主机不需要配置。但现在如果我们加入了哨兵机制主机也要配备密码并且不管主机还是从机密码最好保持一致。 原因如下 1一旦当前 master 主机挂了slave从机 会重新选举新的服务器作为主机如果配置文件内的主机密码与新选举出来的主机密码不一致则新选举的主机会拒绝访问 2再者原来下线的主机重新上线之后就会变成从机在访问新主机就需要知道新主机的密码否则也会拒绝访问所以建议所有 redis 服务器密码设置为一样的 7. 什么是 leader 哨兵领导者 以下是 sentinel.conf 配置文件中关于 leader 哨兵领导者选举的部分注释。 # Note that whatever is the ODOWN quorum, a Sentinel will require to # be elected by the majority of the known Sentinels in order to # start a failover, so no failover can be performed in minority.翻译过来的大致意思就是一旦主节点已经被哨兵集群投票并通过认定当前 master 已经主观下线了那么哨兵内部就会选举出一个哨兵领导 leader然后由 leader 进行新的 master 节点选取和故障转移。所以一定要分清新的 master 服务器是由哨兵集群中选出来的 leader 选举的由 leader 确定 master。 为什么会有 leader 呢很好理解假如说现在 master 主机挂了要重新选择一个 master谁来选呢三个哨兵发生争吵怎么办哨兵A说凭什么你来选我能力强我来选哨兵B说我能力强我来选哨兵C说我能力更强我来选你们两个退后。 所以在选取新的 master 之前哨兵内部会先选出一个 leader 哨兵领导者由 leader 领导者选取新的从服务器作为 master。 8. Raft 算法选举 leader 哨兵领导者 Raft 算法底层其实非常的复杂这里我做了相应的简化想深入了解的同学可以搜索相关的资料。 如下图Raft 算法的核心思想就是先到先得并且一个哨兵只能投一票以下图为例 1sentinel1 哨兵给 sentinel2 和 sentinel3 分别发送信息说我想当领导你们两个都投我 2sentinel2 接收到了 sentinel1 的投票请求投了 sentinel1 一票但 sentinel2 自己也想当领导 sentinel2 给 sentinel1 和 sentinel3 发信息说你们两个投我也想当领导 3sentinel3 在接收到了 sentinel1 和 sentinel2 的投票请求后因为 sentinel3 先接收到了sentinel1 的投票请求所以 sentinel3 将自己的票投给了 sentinel1当接收到 sentinel2 的投票请求后就不能再给 sentinel2 投票了因为它已经投过票了但是 sentinel3 它也想当领导就给 sentinel1 和 sentinel2 发投票请求让他们两个也投我票 4sentinel1 接收到了 sentinel2 和 sentinel3 的投票自己有两票又接收到了 sentinel2 的投票请求于是 sentinel1 将自己的一票投给了 sentinel2当再次接收到 sentinel3 的投票请求时就不能重复投票 5经过投票之后sentinel1获得了两票sentinel2获得了一票sentinel3获得了0票恭喜sentinel1 称为 leader 哨兵领导者 6注意一点在实际 leader 选取过程中过程并不一定是我上述的样子我列举的只是其中一种情况也有可能 sentinel2 票最多也有可能 sentinel3 最多就看谁先获得投票反馈了 9. leader 选取新 master 的规则 接上一小节leader 选取完毕之后sentinel1 就会从 slave 从服务器中选取一个作为新的 master 主机而 slave 从服务器也是一样的凭什么都是 slave 从服务器它就能当 master 做我的老大我要当老大我不服它。 因此leader 哨兵选取有一定的规则自然而然新的 master 选取也是有规则的嘛。 新 master 的选取规则主要看三点 1首先第一点看谁的优先级更高。 虽然都是从服务器但它们自己的 sentinel.conf 配置文件内还有一个优先级属性slave-priority或replica-priorityredis6版本和redis7版本名字不太一样但代表的含义都是一样的我们可以对不同的从服务器优先级属性进行配置谁的优先级高谁就会优先被选举为新的 master。 2其次第二点如果优先级都一样大再看谁的复制偏移量最大。 举个例子slave 从服务器会同步 master 主服务器上的数据假设 master 在挂掉之前一共有10个数据slave从服务器A也许因为网络波动只同步过来 9 个数据丢失了一个。而slave从服务器B把 10 个数据全都同步过来了。那么A的偏移量就是9B的偏移量就是10明显B比A能力更强并且升级为 master 花费的资源更少而A在同步时还要再添加一条数据需要花费更多资源所以理所当然B更有资格也更适合成为新的 master。 3最后第三点如果优先级一样大偏移量也一样最后比较RunID的ASCLL码。 每个从机服务器都是一个单独的服务嘛那它就有一个独一无二的运行ID比较各个从服务器的ASCLL码谁小谁就当新的 master 主机。 10. 从机变成 master 的过程 OKleader经过了三条规则的筛选之后就能从众多从服务器中确定出来哪个做新的 master了确定好了之后还要经过下面的步骤才能彻底完成 master 的选取到完成。 1leader会对新选举出来的 master 执行 slaveof no one 命令使其独立为master 2leader 对其他的 slave 从服务器发送命令让剩余的 slave 变成新 master 的 slave 3之前下线的老 master 重新上线之后就不再是 master了leader 会将其降级为 slave变成新 master 的 slave从机 11. 解答哨兵数量配备问题 问题一为什么哨兵不能是一台 因为哨兵本身它也是一个服务器如果哨兵出现故障挂了同时 Redis 主机也出现了故障挂了那么就没有人能来看守并选出新的主master数据库了会导致我们的哨兵失效业务可能面临中断甚至崩溃。 问题二为什么不能是两台 从刚才的 Raft 算法中可以看出如果是两台哨兵互相投票最后统计的时候都是一票还是无法选出 leader所以两台哨兵的做法不可取。 问题三为什么哨兵必须是奇数台 为了方便投票和刚才的问题二一样的原理如果有偶数台机器两两之间互相投票到最后很有可能会有多台哨兵得票数相等无法选出最终的 leader但如果我们采用奇数台哨兵则可以大大降低无法选出 leader 的情况发生。 12. 哨兵的使用建议 1哨兵数量是少在三个以上并且为奇数 2哨兵配备在不同的服务器硬件最好保持一致不要这台哨兵的服务器16GB内存那台哨兵32GB内存最好保持一致避免外界环境对我们的 master 选举造成不必要的干扰 3生产过程中经常会使用 Docker 容器化技术部署哨兵集群一定一定一定要注意端口正确映射 4哨兵集群主从复制并不能完全保证数据不丢失因为老 master 下线到新 mater 选举到上线期间是有一定的延迟的或许几秒或许几十秒在此期间我们的 redis 只能对外提供读的业务不能写数据所以如果有写数据操作数据会丢失。 5主从复制哨兵集群的这种方式虽然不错但还是有一定的局限性那最典型的来说只能有一个 master 主机对外提供 写数据操作至于 slave 从机只能进行读数据操作一旦用户量增大单台 master 极有可能承受不了巨大的用户访问量所以就有集群在集群中可以设置多台 master也多台 slave同时集群内部自带哨兵机制不需要我们自己配非常方便redis 集群我写了另外一篇文章感兴趣的小伙伴可以跳转观看。 Redis 主从复制哨兵集群——3集群篇-CSDN博客https://blog.csdn.net/m0_70325779/article/details/133890063?spm1001.2014.3001.5502

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宁津哪个网络公司做网站比较好代做作业网站

1.背景无论多么优秀的程序员都难以避免写出来的程序会有崩溃的一天,特别是c、c这种高技术含量的语言,一不小心就来个段错误(segment fault),我们通常会写一个守护进程或者守护脚本,检测对应的进程是否退出,…

在别人网站上建设频道或栏目相关法律规定wordpress建电商网站

随着海外电话营销的发展,越来越多的出海企业通过国际语音群呼系统打开出海营销之路。企业出海营销运营,选择一个安全、高效、便捷的国际语音群呼系统非常重要。 一、什么是国际语音群呼系统? 国际语音群呼是指通过语音的方式批量向海外用户传…

目前市面上做网站的程序搭建网站商城

当 JetBrains PyCharm 2017.1.3 x64 遇到 please select a vaild python interpret 错误时: 进入PyCharm setting 选项,搜索 interpret

富锦网站制作品牌网站建设小蝌蚪a

再提一下什么是静态方法: 静态方法:在类身上的方法,  动态方法:在实例身上的方法 Object.defineProperties(obj, props)obj:被添加属性的对象props:添加或更新的属性对象给对象定义属性,如果存在该属性&a…

网站建设的简历汕头seo外包平台

介绍 chatgpt和xmind结合起来帮你制作精美的思维导图。 1.输出Markdown格式 2.xmind导入.md文件

做网站网站条件怎么访问域名网站

php写入mysql出现中文乱码的解决办法是:在建立数据库连接之后,将该连接的编码方式改为中文。代码如下:$linkIDmysql_connect("localhost","root","admin");if(!$linkID){echo "数据库连接失败&#xff01…

织梦只显示网站首页国外简约企业网站

2024年最新阿里云服务器租用费用优惠价格表,轻量2核2G3M带宽轻量服务器一年61元,折合5元1个月,新老用户同享99元一年服务器,2核4G5M服务器ECS优惠价199元一年,2核4G4M轻量服务器165元一年,2核4G服务器30元3…

企业级网站内容管理解决方案百度网站快速优化

最近在内核频繁使用了自旋锁,自旋锁如果使用不当,极易引起死锁,在此总结一下。 自旋锁是一个互斥设备,它只有两个值:“锁定”和“解锁”。它通常实现为某个整数值中的某个位。希望获得某个特定锁得代码测试相关的位。…

企业的网站开发费用如何入账长春哪有做网站公司

一.position属性意指:盒子的位置。四个属性:1.static:默认值,没有定位,元素按照标准文档流进行布局。2.relative:相对定位,使用相对定位的盒子位置以标准文档流进行的排办方式为基础,然后使盒子相对于他原本的位置偏移指定的距离。…

蒲城网站建设长沙设计网站排名

ResourceQuota准入控制器 ResourceQuota准入控制器限制cpu、内存、pod、deployment数量限制存储空间大小 LimitRanger准入控制器在limit名称空间创建pod,不指定资源,看看是否会被limitrange规则自动附加其资源限制创建pod,指定cpu请求是100m&…

专科网站开发就业方向江苏城乡建设厅官方网站

(PS:文末福利赠送 无套路,真实有效!)Python是一种动态解释型的编程语言。Python可以在Windows、UNIX、MAC等多种操作系统上使用,也可以在Java、.NET开发平台上使用。【特点】1 Python使用C语言开发,但是Python不再有C语言中的指针…

创业网站搭建设计方案创可贴在线设计平台

我一直在研究一个包含英国国家铁路时刻表的数据集,它们以文本格式为您提供每列火车的出发和到达时间。 例如,可以这样创建代表停止的节点: CREATE (stop:Stop {arrival: "0802", departure: "0803H"})该时间格式不是特…

济宁商城网站建设辽阳网站设计

借助了插件sortablejs。这种方法只适合做非树状table。如果想实现树状table&#xff0c;并且可拖动。可以试一下aggridVue3这个插件 <template><div class"draggable" style"padding: 20px"><el-table row-key"id" :data"t…

无锡网站推广$做下拉去118crwordpress pc 手机

近年来&#xff0c;随着技术的进步&#xff0c;智能可穿戴设备在社交网络、医疗保健、导航等诸多领域有着非常广泛的应用&#xff0c;这为大众生活带来了诸多便利。 当前的可穿戴产品形态纷繁多样&#xff0c;主要包括智能手表、智能眼镜、智能手环、健康穿戴和体感控制等等&am…

微信公众号的网站超链接怎么做卡片式设计 网站

文章目录 效果设计思路二、使用步骤前提:自定义TableView的失去焦点事件1. 创建实体类2.读取本地文件数据3. 定义表格TableView总结效果 如图所示,这是一个存储application.properties内容的表格。这里的文件application.properties是从Linux服务器上获取来的。 当点击检索按…

镇江网站企业如何通过地方网站宣传网站

文章目录 项目/仓库名称修订历史项目说明书代码工作流程项目/仓库名称 任务名称: 任务描述: 任务优先级:1(1最优先) 周期:10ms和1ms README.md为markdown语言编写的文件,可使用typora软件进行读写。 修订历史 版本时间更新说明修订者V0.12023/10/27base版本项目说明书…

网站备案有幕布北京价格微网站建设

本文主要是为了记录安装过程&#xff0c;方便后续用到时可及时翻阅&#xff0c;如有不对之处&#xff0c;请各位不吝赐教。因离线安装方法较为常用&#xff0c;故本文主要说明使用离线方式安装jdk的方法&#xff0c;在线安装方法后续补充。第一步&#xff1a;下载jdk官网下载地…

免费 空间 网站 国外网站开发php未来发展

前言 这里主要是展示一下 mars3d 的一个基础的使用 主要是设计 接入地图服务器的 卫星地图, 普通的二维地图, 增加地区标记 基础绘制 点线面园 等等 测试用例 <template><div style"width: 1920px; height:1080px;"><div class"mars3dClas…

搭建什么网站能盈利南京做网站公司

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

网站建设前的ER图华东建设安装有限公司网站

nodeport 默认端口 nodeport默认端口是30000-32767&#xff0c;超出会报错 添加如下参数&#xff0c;端口范围可以自定义 externalname ingress-nginx 通过一个外部的vip 地址 访问到集群内的多个service 一种全局的、为了代理不同后端 Service 而设置的负载均衡服务&…