绍兴建站服务开设计公司要怎么规划
- 作者: 五速梦信息网
- 时间: 2026年03月21日 09:21
当前位置: 首页 > news >正文
绍兴建站服务,开设计公司要怎么规划,中国住房和建设部网站首页,在服务器网站上做跳转页面返回目录 说明 clusterCron 每秒执行10次clusterCron 内置了一个iteration计数器。每一次运行clusterCron#xff0c;iteration都加1。当 iteration % 10 0的时候#xff0c;就会随机选取一个节点#xff0c;给它发送PING。而由于clusterCron每秒执行10次#xff0c;所以…返回目录 说明 clusterCron 每秒执行10次clusterCron 内置了一个iteration计数器。每一次运行clusterCroniteration都加1。当 iteration % 10 0的时候就会随机选取一个节点给它发送PING。而由于clusterCron每秒执行10次所以实际上每秒才会PING一次随机节点。 过程 iteration /* 每次运行clusterCron都加一 / if 配置的cluster-announce-hostname发生了变化:更新myself的hostname 计算handshakeTimeout max(cluster-node-timeout, 3000) statsPfailNodes 0 / 重新计算timeout的node数 / 遍历cluster节点字典中的每个node:对于node的inbound link和outbound link:1. 检查它们的发送buffer能否收缩从而节省内存2. 如果配置的cluster-link-sendbuf-limit ! 0检查它们的发送buffer可能经过1的收缩是否超过了限制若是则释放掉相应的link3. 更新统计它们对内存的使用量跳过myself跳过处于NOADDR的node / 没有地址没法建立连接 /if node处于PFAIL状态:statsPfailNodes / 计算timeout节点数 /if node处于handshake (当前时间 - node的创建时间 handshakeTimeout:删除node / 规定时间内没有完成handshake则认为它是未知的节点 /检查node是否disconnected若是,则重建连接在连接创建成功之后: / 这里是异步执行的 /if node处于MEET状态: / 我们需要MEET它 /向它发送MEET消息else:向它发送PING消息清除node的MEET标记/ 每秒随机选取一个节点给它发PING / if iteration % 10 0: / 每秒clusterCron调度10次每10次发一次PING /从cluster节点字典中随机选取5个node它们满足以下条件:1. 已连接上有outbound link2. pingSent 0 没有在等待PONG3. 不是myself4. 没有处于handshake再从这5个node中选取pongReceived最小的node / 最久没收到PONG的node/if 这样的node存在:给它发送PING消息/ 检查节点是否timeout顺便为migrate收集信息 / orphanedMasters 0 / 统计orphaned master数 / maxSlaves 0 / 统计单个节点拥有的最大slave数 / thisSlaves 0 / 如果myself是master表示拥有的slave数如果myself是slave表示它的master所拥有的slave数 / 遍历cluster节点字典的每个node:跳过myself跳过没有地址(NOADDR)的node跳过处于handshake的node/ 检查node是否为orphaned master主要是先收集信息 /if myself是slave node是master node没有FAIL:okSlaves node上没有处于FAIL的slave数/ node是orphaned master的条件:1. slots 02. 当前没有正常运作的slave3. 带有MIGRATE_TO标记曾经有至少一个slave或者被它failover的master曾经拥有slave /if okSlaves 0 node的slots 0 node有MIGRATE_TO标记:orphanedMastersmaxSlaves max(okSlaves, maxSlaves)if node是myself的master:thisSlaves okSlaves/ 如果超过 cluster-node-timeout/2 都没有收到来自node的数据有可能只是连接出了问题尝试重连 /pingDelay 当前时间 - node的pingSentdataDelay 当前时间 - node的dataReceivedif node的link存在 / 存在连接的才需要检查 /当前时间 - link的创建时间 cluser-node-timeout / 还没有重连 /node的pingSent 0 / 已经对node发出了PING /pingDelay cluster-node-timeout/2 / 超时没有收到PONG /dataDelay cluster-node-timeout/2: / 超时没有收到其他数据 /释放掉link下次会自动重连参考上面的逻辑/ 检查是否需要PING一下node以保证cluster信息的有效性 /if node的link存在 node的pingSent 0 / 没有在等待PONG // 太久没PING需要PING一下node /当前时间 - node的pongReceived cluster-node-timeout/2: 给node发送PING消息if 我们是node的master而它对我们请求了manual failover:给node发送PING消息/ 如果timeout了就改变node的状态 /if node的pingSent 0: / 正在等待PONG // 加载大量数据时PONG有可能会延时所以如果能收到数据也能说明node还活着 /nodeDelay min(pingDelay, dataDelay) / 最近一次收到的数据间隔 /if nodeDelay cluster-node-timeout / node真的timeout了 /node没有处于PFAIL或FAIL:把node设置成timeoutPFAIL状态/ 检查是否可以复制master / if myself是slave master有地址了 还没开始复制master:更新master的IP和port开始复制/ 检查manual failover是否已经timeout / if manual failover已经timeout:重置manual failover的状态if myself是slave:处理 Manual Failover / 在Failover章节叙述 /处理 Slave Failover / 在Failover章节叙述 // 检查我们是否需要migrate到orphaned master /if orphanedMasters 0 / 存在orphaned master // 我们的master拥有最多冗余的slave所以我们可以分离出来成为其中一个orphaned master的slave /maxSlaves 2 thisSlaves maxSlaves cluster-allow-replica-migration: / 配置允许我们这么做 // Step 1: 检查cluster的状态 /if 我们认为当前cluster处于FAIL:跳过migration/ Step 2: 检查我们的master是否拥有多余的slave /if 我们的master拥有的正常slave数 cluster-migration-barrier:跳过migration / 不能少于配置要求的最少slave数才能做 // Step 3查找orphaned master /target null遍历cluster节点字典中的每个node:okSlaves 0isOrphaned 1/ 必须是正常工作没有slave的master而且带有MIGRATE_TO标记含义参考上面 /if node是slave || node处于FAIL || node没有MIGRATE_TO标记):isOrphaned 0 if node是master:okSlaves node拥有的没有处于FAIL的slave数if okSlaves 0:isOrphaned 0if isOrphaned:if target null / 只查找第一个符合要求的node /node的slots 0: / 没有slots的master不需要slave /target nodeif node的orphanedTime 0: / 跟踪记录开始时间 /设置为当前时间else:重置node的orphanedTime为0if okSlaves maxSlaves: / 我们的master拥有最多的slaves /minID 从node的slaves中查找出最小的IDif myself的ID minID:candidate myself / 我们当选了 // Step 4: 执行migration / if target ! null / 找到了orphaned master /candidate myself / 我们当选了 // 需要保持orphaned一段时间如果期间发生failover有可能使得slave和master之间的关系发生变化 /当前时间 - target的orphanedTime 5000ms: 把target设置为我们的新master/ 结束本轮调度前保存cluster的变化 */ if cluster信息发生了变化 || 我们认为cluster处于FAIL状态:更新nodes.conf文件
- 上一篇: 绍兴seo网站推广校园推广活动策划方案
- 下一篇: 绍兴市中等专业学校网站什么是专业网站
相关文章
-
绍兴seo网站推广校园推广活动策划方案
绍兴seo网站推广校园推广活动策划方案
- 技术栈
- 2026年03月21日
-
邵阳住建部网站企业网页制作公司青岛
邵阳住建部网站企业网页制作公司青岛
- 技术栈
- 2026年03月21日
-
邵阳营销型网站建设写作网站后台账号密码忘了怎么办
邵阳营销型网站建设写作网站后台账号密码忘了怎么办
- 技术栈
- 2026年03月21日
-
绍兴市中等专业学校网站什么是专业网站
绍兴市中等专业学校网站什么是专业网站
- 技术栈
- 2026年03月21日
-
绍兴网站的优化做编程网站有哪些内容
绍兴网站的优化做编程网站有哪些内容
- 技术栈
- 2026年03月21日
-
绍兴网站建设技术外包深圳网站建设首选上榜网络
绍兴网站建设技术外包深圳网站建设首选上榜网络
- 技术栈
- 2026年03月21日
