当前位置: 首页 > news >正文

购物网站 建站服务大于二高端网站建设

购物网站 建站服务,大于二高端网站建设,公司网站网页,响应式企业网站设计与实现集群 设置从节点 向一个节点发送命令: CLUSTER REPLICATE node_id可以让接收命令的节点成为node_id所指定节点的从节点#xff0c;并开始对主节点进行复制: 1.接收到该命令的节点会首先会在自己的clusterState.nodes字典中找到node_id所对应节点的clusterNode结构,…集群 设置从节点 向一个节点发送命令: CLUSTER REPLICATE node_id可以让接收命令的节点成为node_id所指定节点的从节点并开始对主节点进行复制: 1.接收到该命令的节点会首先会在自己的clusterState.nodes字典中找到node_id所对应节点的clusterNode结构,并将自己的clusterState.myself.slaveof指针指向这个结构以此来记录这个节点正在复制的主节点: struct clusterNode { // ...// 如果这时一个从节点那么指向主节点 struct clusterNode *slaveof;// ... }2.然后节点会修改自己在clusterState.myself.flags中的属性关闭原本的REDIS_NODE_MASTER标识打开REDIS_NODE_SLAVE 标识标识这个节点已经由原来的主节点变成了从节点3.最后节点会调用复制代码并根据clusterState.myself.slaveof指向的clusterNode结构所保存的IP地址和端口号对主节点进行复制。 因为节点的复制功能和单机Redis服务器的复制功能使用了相同的代码所以让从节点复制主节点相当于向从节点发送命令 SLAVEOF master_ip master_port如图所示节点7004在复制节点7000时的clusterState结构: 1.clusterState.myself.flags属性的值为REDIS_NODE_SLAVE,表示节点7004是一个从节点。2.clusterState.myself.slaveof指针指向代表节点7000的结构表示节点7004正在复制的主节点为7000节点 一个节点成为从节点并开始复制某个主节点这一信息会通过消息发送给集群中的其他节点最终集群中的所有节点都会知道某个从节点 正在复制某个主节点。集群中的所有节点都会在代表主节点的clusterNode结构的slaves属性和numslaves属性中记录正在复制这个主节点的从节点名单: struct clusterNode { // ... // 正在复制这个主节点的从节点数量 int numslaves;// 一个数组 // 每个数组项指向一个正在复制这个主节点的从节点的clusterNode结构 struct clusterNode **slaves;// ... }例子 举个例子。图中记录了节点7004和节点7005成为节点7000的从节点之后集群中的各个节点为节点7000创建的clusterNode结构的样子: 1.代表节点7000的clusterNode结构的numslaves属性的值为2这说明有两个从节点正在复制节点7000 2.代表节点7000的clusterNode结构的slaves数组的两个项分别指向代表节点7004和代表节点7005的clusterNode结构 这说明节点7000的两个从节点分别是节点7004和节点7005 故障检测 集群中的每个节点都会定期地向集群中的其他节点发送PING消息以此来检测对方是否在线如果接收PING消息的节点没有在规定的时间内向发送PING消息的节点返回PONG消息那么发送PING消息的节点就会将接收PING消息的节点标记为疑似下线(probale fail, PFAIL) 集群中的各个节点会通过互相发送消息的方式来交换集群中各个节点的状态信息例如某个节点是处于在线状态、疑似下线状态(PFAIL)还是 已下线状态(FAIL).当一个主节点A通过消息得知主节点B认为主节点C进入了疑似下线状态时主节点A会在自己的clusterState.nodes字典中 找到主节点C所对应的clusterNode结构并将主节点B的下线报告(failure report)添加到clusterNode结构的fail_reports链表里面: struct clusterNode { //...// 一个链表记录了所有其他节点对该节点的下线报告 list *fail_reports;// ... }每个下线报告由一个clusterNodeFailReport结构表示: struct clusterNodeFailReport { // 报告目标节点已经下线的节点 struct clusterNode *node;// 最后以此从node节点收到下线报告的时间 // 程序使用这个时间戳来检查下线报告是否过期 // (与当前时间相差太久的下线报告会被删除) mstime_t time; }typedef clusterNodeFailReport;如果在一个集群里面半数以上负责处理槽的主节点都将某个主节点x报告为疑似下线那么这个主节点x将被标记为已下线(FAIL),将主节点x标记为已下线会向集群广播一条关于主节点x的FAIL消息所有收到这条FAIL消息的节点都会立即将主节点x标记为已下线。 例子 举个例子。如果节点7001向节点7000发送了一条PING消息但是节点7000没有在规定的时间内向节点7001返回一条PONG消息 那么节点7001就会在自己的clusterState.nodes字典中找到7000所对应的clusterNode结构并在结构的flags属性中打开REDIS_NODE_PFAIL标识以此表示节点7000进入了疑似下线状态如图所示举个例子。如果主节点7001在收到主节点7002、主节点7003发送的消息后得知主节点7002和主节点7003都认为主节点7000进入了 疑似下线状态那么主节点7001将为主节点7000创建如图所示的下线报告.举个例子对于上图所示的下线报告来说主节点7002和主节点7003都认为主节点7000进入了下线状态并且主节点70001也认为主节点7000 进入了疑似下线状态(代表主节点7000的结构打开了REDIS_NODE_PFAIL标识),综合起来在集群四个负责处理槽的主节点里面有三个主节点都 将主节点标记为下线数量已经超过了半数所以主节点7001会将主节点7000标记为已下线并向集群广播一条关于主节点7000的FAIL消息 如图所示 故障转移 当一个从节点发现自己正在复制的主节点进入了已下线状态时从节点将开始对下线主节点进行故障转移以下是故障转移的执行步骤: 1.复制下线主节点的所有从节点里面会有一个从节点被选中2.被选中的从节点会执行SLAVEOF no one命令成为新的主节点3.新的主节点会撤销所有对已下线主节点的槽指派并将这些槽全部指派给自己4.新的主节点会向集群广播一条PONG消息这条PONG消息可以让集群中的其他节点立即知道这个节点已经由从节点变成了主节点并且 这个主节点已经接管了原本由已下线节点负责处理的槽5.新的主节点开始接收和自己负责处理的槽的有关的命令请求故障转移完成 选举新的主节点 新的主节点是通过选举产生的。以下是集群选举新的主节点的方法: 1.集群的配置纪元是一个自增计数器它的初始值为02.当集群里的某个节点开始一次故障转移操作时集群配置纪元的值就会被增一3.对于每个配置纪元集群里每个负责处理槽的主节点都有一次投票的机会而的哥向主节点要求投票的从节点将获得主节点的投票4.当从节点发现自己正在复制的主节点进入已下线状态时从节点会向集群广播一条CLUSTERMSG_TYPE_FAILOVER_AUTH_REQUEST 消息要求所有收到这条消息并且具有投票权的主节点向这个从节点投票5.如果一个主节点具有投票权(它正在负责处理槽),并且这个主节点尚未投票给其他从节点那么主节点将向要求投票的从节点返回一条 CLUSTERMSG_TYPE_FAILOVER_AUTH_ACK消息表示这个主节点支持从节点成为新的主节点6.每个参与选举的从节点都会接收CLUSTERMSG_TYPE_FAILOVER_AUTH_ACK消息并根据自己收到了多少条这种消息来统计自己获得了多少主节点的支持7.如果集群里有N个具有投票权的主节点那么当一个从节点的收集到大于等于N/21张支持票时这个从节点就会当选为新的主节点8.因为在每一个配置纪元里面每个具有投票权的主节点只能投一次票所以如果有N个主节点进行投票那么具有大于等于N/21张支持 票的从节点只会有一个这确保了主节点只会有一个9.如果在一个配置纪元里面没有从节点能收集到足够多的支持票那么集群进入一个新的配置纪元并再次进行选举知道选出新的主节点为止 这个选举主节点的方法和选举领头Sentinel的方法非常相似因为两者都是基于Raft算法的领头选举(leader election)方法来实现的
http://www.zqtcl.cn/news/276091/

相关文章:

  • 江西网站建设优化服务营销软文范例大全100字
  • 图片类网站怎样做高并发专业做旗袍花的网站是什么网站
  • 我要建网站需要什么专业网站制作全包
  • 网站开发合同印花税自定义手机网站建设
  • 营销型网站开发流程制作网站需要钱吗
  • 提供有经验的网站建设百度识图识别
  • html手机网站怎么做湖南关键词优化品牌推荐
  • 网站定制开发收费标准是多少易语言如何做浏网站
  • 网站怎么做实名认证新手怎么开婚庆公司
  • .net做网站用什么技术网站优化排名方案
  • 电商网站备案流程网站移动端优化的重点有哪些
  • 数据需求 网站建设做qq空间的网站
  • 微信网站游戏网络规划设计师可以挂证吗
  • 有个做特价的购物网站网站建设与维护题库及答案
  • 长沙网站优化价格创意设计师个人网站
  • 滨河网站建设南京免费发布信息网站
  • 蓝色系列的网站邓砚谷电子商务网站建设
  • 德阳市住房和城乡建设局网站首页一个服务器可以建多少个网站
  • 建一个电商网站多少钱一起做网店货源app
  • 做网站用lunx代理记账 营销型网站
  • 凡客做网站怎么样WordPress分类目录 前100篇
  • 腾讯wordpress 建站教程本地的上海网站建设公司
  • 深圳市南山区住房和建设局官方网站上海专业网站建设公司站霸网络
  • 建网站的8个详细步骤网站集约化建设讲话
  • 建设局哪个网站查证南京注册公司多少钱
  • 免费的网站制作郑州中森网站建设
  • 网站关键词搜不到了濮阳网络教育
  • 推荐股票的好网站如何做好网站宣传
  • 免费网站模板网大型网络游戏
  • 网站开发语言数据库有几种广东省建设厅官网查询