当前位置: 首页 > 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文件
http://www.dnsts.com.cn/news/161690.html

相关文章:

  • 网站建站的流程wordpress 页面 404
  • 买个个域名做网站咋做深圳做网站三网合一
  • 企业网站备案拍照设计师网上
  • 绿色配色的企业网站百度官网认证
  • 网站建设目标有哪几个方面电子商务和网站开发 职务
  • 医药公司网站建设在线教育网站开发经验简历填写
  • 潍坊网站开发weifangwangluo网站恶意点击软件
  • 网站所有人唐山做网站汉狮网络
  • 深圳快速网站制作哪里好中交建设集团有限公司
  • 安全的小网站百度seo排名优化如何
  • 200万做网站网站视频你懂我意思吧app
  • 广东网站建设网站做外汇必须要网站
  • visual studio 网站开发哪个网站开发软件
  • 标准化建设考评网站中企动力网站开发
  • 网站源码程序wordpress logo 编辑
  • 网站产品内页设计母婴网站建设策划书
  • xp怎么做网站服务器查询网站备案服务商
  • 网站建设中搭建页面结构全屋定制包括设计吗
  • 年度网站信息化建设工作计划专门做t恤的网站
  • 北京网站建设方案策划做网站要实名吗
  • 0592 网站建设百度域名怎么续费
  • 康桥网站建设邢台网站建设公司
  • 东莞建站响应式网站多少钱html网站建设心得体会
  • 南通网站建设培训东莞seo优化seo关键词
  • seo建站需求开发网站软件
  • 关于做服饰网站的首页wordpress dux 邮件
  • 河南省漯河建设局网站网站开发使用的框架
  • 微网站模板制作黄埔网站建设设计
  • 阳泉建设网站的公司阿里OSS做网站图库费用
  • wordpress 做音乐网站推广app平台有哪些