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

标准网站sitemap.xml360搜索首页

标准网站sitemap.xml,360搜索首页,网站建设专业性,做传单网站applyEntries方法的主要作用是接收待应用的 Raft 日志条目,并按顺序将其应用到系统中;确保条目的索引连续,避免丢失或重复应用条目。 一、函数完整代码 func (s *EtcdServer) applyEntries(ep *etcdProgress, apply *apply) {if len(apply.…

applyEntries方法的主要作用是接收待应用的 Raft 日志条目,并按顺序将其应用到系统中;确保条目的索引连续,避免丢失或重复应用条目。

一、函数完整代码

func (s *EtcdServer) applyEntries(ep *etcdProgress, apply *apply) {if len(apply.entries) == 0 {return}firsti := apply.entries[0].Indexif firsti > ep.appliedi+1 {lg := s.Logger()lg.Panic("unexpected committed entry index",zap.Uint64("current-applied-index", ep.appliedi),zap.Uint64("first-committed-entry-index", firsti),)}var ents []raftpb.Entryif ep.appliedi+1-firsti < uint64(len(apply.entries)) {ents = apply.entries[ep.appliedi+1-firsti:]}if len(ents) == 0 {return}var shouldstop boolif ep.appliedt, ep.appliedi, shouldstop = s.apply(ents, &ep.confState); shouldstop {go s.stopWithDelay(10*100*time.Millisecond, fmt.Errorf("the member has been permanently removed from the cluster"))}
}

二、方法完整解析

1. 检查是否有待应用的条目

if len(apply.entries) == 0 {return
}
  • 功能:检查是否有待应用的条目。
  • 作用:如果 apply.entries 为空,说明没有新条目需要应用,函数直接返回,不做任何处理。

2. 验证条目的索引是否连续

firsti := apply.entries[0].Index
if firsti > ep.appliedi+1 {lg := s.Logger()lg.Panic("unexpected committed entry index",zap.Uint64("current-applied-index", ep.appliedi),zap.Uint64("first-committed-entry-index", firsti),)
}
  • 功能:验证待应用条目的索引是否连续。
  • 作用:如果待应用的第一个条目索引大于当前已应用索引 + 1,表示条目丢失或索引跳跃,触发 panic,并记录错误日志。

3. 选择待应用的条目

var ents []raftpb.Entry
if ep.appliedi+1-firsti < uint64(len(apply.entries)) {ents = apply.entries[ep.appliedi+1-firsti:]
}
  • 功能:选择从当前已应用索引之后需要应用的条目。
  • 作用:确保条目按照顺序应用,避免跳过任何条目。ents 保存了从当前应用位置开始的所有待应用条目。

4. 检查是否有待应用的条目

if len(ents) == 0 {return
}
  • 功能:检查是否有待应用的条目。
  • 作用:如果没有待应用的条目(即所有条目都已经应用),直接返回,不继续执行后续操作。

5. 应用条目并判断是否需要停止该成员

var shouldstop bool
if ep.appliedt, ep.appliedi, shouldstop = s.apply(ents, &ep.confState); shouldstop {go s.stopWithDelay(10*100*time.Millisecond, fmt.Errorf("the member has been permanently removed from the cluster"))
}
  • 功能:调用 apply 方法应用条目,并判断是否需要停止该成员。
  • 作用:将选中的条目应用到系统中,如果发现该成员需要停止(例如,已被永久移除),则通过 stopWithDelay 方法延迟停止该成员的服务。

三、方法总结:

  • 该方法的主要作用是接收待应用的 Raft 日志条目,并按顺序将其应用到系统中。
  • 它会确保条目的索引连续,避免丢失或重复应用条目。
  • 如果发现该成员应该被移除(如它被永久移除或存在某些异常情况),函数会触发停止操作。
    下一步的阅读的主要方法为
    func (s *EtcdServer) apply方法
http://www.hengruixuexiao.com/news/49712.html

相关文章:

  • 触摸屏互动网站建设案例百度账户
  • 网站开发网站制作报价单苏州网站建设费用
  • cookie做网站访问量怎么推广公众号让人关注
  • 贺州市城乡住房建设厅网站免费seo网站推广在线观看
  • 中国建设银行网站首页企业网银网络舆情的网站
  • 农八师建设兵团社保网站google推广技巧
  • 利用万网做网站域名信息查询系统
  • 响应式网站建设报价单超能搜索引擎系统网站
  • 百度竞价是什么seo怎么做优化工作
  • 网站后台乱码seo是什么姓
  • java做网站用哪些技术优化师
  • 电商网站建设方案道客巴巴沧州网站运营公司
  • wordpress界面主题宁波seo优化公司
  • 北京丰台住房和城乡建设委员会网站山东seo
  • 免费域名x网站有哪些搜索引擎
  • 注册公司流程和费用大概多少钱seo技巧是什么
  • app公司开发seo优化便宜
  • 西宁商城网站建设公司无锡seo公司找哪家好
  • 网站设计优缺点网站推广优化业务
  • 网站程序设计软件重庆排名seo公司
  • 信息公司网站建设方案 游戏网站免费推广方式
  • 做软件代理去哪个网站杭州seo百度关键词排名推广
  • 大兴网站建设公司拼多多seo怎么优化
  • 个人做购物商城网站会罚款吗短信广告投放
  • 网站建设毕业设计指导老师意见全国今日新增疫情
  • 汽车网站页面游戏推广
  • 票务网站官方客服做五休二品牌营销公司
  • 沈阳开发网站公司网站建站网站
  • 电子工程网网站51link友链
  • 广州番禺专业做网站公司网站建设服务