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

网站推广做那个较好呢体验营销理论

网站推广做那个较好呢,体验营销理论,马鞍山网站建设文,做网站运营需要具备什么能力简介 dledger是openmessaging的一个组件, raft算法实现,用于分布式日志,本系列分析dledger如何实现raft概念,以及dledger在rocketmq的应用 本系列使用dledger v0.40 本文分析dledger的选主 关键词 Raft Openmessaging 心跳/选…

简介

       dledger是openmessaging的一个组件, raft算法实现,用于分布式日志,本系列分析dledger如何实现raft概念,以及dledger在rocketmq的应用

      本系列使用dledger v0.40

      本文分析dledger的选主

关键词

Raft

Openmessaging

心跳/选主

参考资料

In Search of an Understandable Consensus Algorithm  raft论文简版

选主

         选主是dledger的关键特性,主节点承担处理Client请求,复制日志到跟随者节点,dledger通过心跳发起选举。

关键属性

本节介绍关键属性,为下面分析准备

  • term 任期/轮次

任期: 新的选举开始到下一个选举开始,左闭右开的时间区间,包括选举期和工作期两部分

轮次:任期内选举的轮次,任期内可多轮不提升term选举

  • needIncreaseTermImmediately

需要立即增加term的设置,只提升任期,但不对其他节点发起投票请求,用于term落后的节点

  • nextTimeToRequestVote

下次请求投票时间

System.currentTimeMillis() + minVoteIntervalMs + random.nextInt(maxVoteIntervalMs - minVoteIntervalMs)

dledger根据情况有不同的设定,下次发起选举时间的差异正是选举的关键

  • currVotedFor

本节点投票给谁了,该值提升term时设置为null;该值设置地方只有一处,处理投票handlerVote,即,不提升term节点,投票给谁不会改变

  • currTerm

节点当前所处任期

  • ledgerEndTerm/ledgerEndIndex

已写入日志的term;已写入日志的索引

两个数据是节点成为leader的关键数据,作为leader已写入日志的term/已写入日志的索引越多越好

分析

选举分3块,第一投票邀请;第二投票;第三投票统计,部署下一步操作,其中

投票邀请

候选者定时维护状态,maintainAsCandidate方法发起投票邀请,邀请其他节点(包括自己)为自己投票

1 检查是否符合投票条件,投票时间到 或者 设置了需要立即提升term

2 double check 节点处于候选者角色

3 是否提升term

lastParseResult是上一轮发起投票分析结果,参考后面投票统计

只需提升term,追赶上该轮投票的term,不发起投票邀请

4 获取节点的已写入的term/index

5 重置needIncreaseTermImmediately

term落后,设置该标记为true,提升term后,恢复默认

6 邀请节点投自己一票,邀请也发给自己

投票

节点,包括发起投票的领导者,处理投票请求

1 投票发起者的合法性检查

投票请求的leader是发起者,投票实际是拉票,邀请其他节点投自己一票

1.1 leader是否组内的节点

目前版本不知道集群变更,实际不会出现

1.2 不应该出现的leader

参看问题分析

-----------------------------------------分割线------------------------------------------

2 检查已写入日志term和index

这个好理解,想做leader,写入的日志应该比我多;比我少的,没资格让我投你票

-----------------------------------------分割线------------------------------------------

term相关检测

3  请求节点的term < 本节点term,拒绝投票,请求节点的term落后了

4  term一致

4.1 currVoteFor为空,还没投票

后面的检测没问题的话,本节点投票给发起节点

4.2  currVoteFor不为空,已投票,而且投的是发起节点

4.3  currVoteFor不为空,投票给其他节点了

下面继续细分,本节点是否已有leader,这里考虑一个问题,有无可能currVoteFor为空,并且有leader?

不可能,分两种情况,

  1. 本节点是跟随者,本节点未进入本term选举,本节点term小于发起者term
  2. 本节点是候选者,提升term置空currVoteFor,成为候选者要置空leader

4.4 本节点term落后了

设置needIncreaseTermImmediately,提升term,但不发起投票请求

5 发起节点term与本节点已写入日志term比较

与2相同,发起节点资格不够,不能投你

-----------------------------------------分割线------------------------------------------


6 本节点用户设置优先当领导,而且条件符合,不投票给发起节点,自己优先

7 最后,投票给请求节点

投票统计

7 首先准备好统计量

-----------------------------------------分割线------------------------------------------

统计不详细分析,看注释便清楚

-----------------------------------------分割线------------------------------------------

7.3 提早通过latch等待,3个条件

1. 已有选出leader

2. 票数已过半,自己将成为leader

3. 本节点未够票,剩下的票不过半,即,也没有其他人选上

7.4 统计所有节点数

总数达到allNum.get() == memberState.peerSize(),所有心跳请求返回(包括连接不上),退出

* memberState.peerSize() 实为 memberState.peerSize()+1-1,peerSize从0开始,数量需+1,排除自己,数量-1

部署下一论投票行动

8 投票统计结果决定下一步投票行动

8.1 本节点term落后了

提升任期,再发起投票请求,这点跟投票者不一样,投票者term落后设置needIncreaseTermImmediately=true,即只提升,不发起投票请求,这样做容易理解,选出主节点,需要争票的少,投票的多,投票发起节点只有一个,投票的节点多个

8.2 集群已有leader,无需再发起投票,但不立即转为follower,延长下次投票,等待下一个leader的心跳,调整为正确的leader,便进入正常工作

8.3 有效返回节点数过少,通常是网络原因,只有等

8.4 除去日志比自身完整的节点,还不够票数当选,让贤,延迟下次投票邀请的时间,让其他节点发起投票

8.5 当选leader

8.6 加上term落后的节点够票数让本节点当选

此时,term落后的节点提升term,立即选举增加本节点当选的几率,但REVOTE_IMMEDIATELY实际没使用

8.7 选票分散,提升任期,投票

9 选上了,赶快坐上宝座当领导

总结:行动的目标是尽快选到领导者,策略上尽量逼近目标无疑是正确的。

有效性

本节去掉异常情况,只看选举的主体流程,分析一下选主的有效性,dledger的规则/逻辑怎样让分布节点获得过半票数

去掉的异常情况

1 本节点term落后

2 有效返回过少

3 写入日志term/index比投票节点小

4 投票节点term小于本节点

选举主体

1 已经选出领导者

2 获得投票过半

3 投票分散,未能选为领导者

1/2 两种情况选举完成

3,提升term;设置下次投票时间,投票时间有范围的随机值,只要有不多于2个节点率先发起投票,其他节点投票,这就可以选出主节点

问题

选举未分析出来的点

不是预期的leader

目前没有分析出怎么出现这种情况

系列文章

  • 架构,核心组件和rpc组件 完成
  • 心跳和选举 完成
  • 日志写入/复制和存储 TBD  包括日志写入和复制,日志存储组件
  • 集成rocketmq rocketmq使用dledger实现消息存储复制;broker控制器 元数据复制
  • 快照/状态机
  • 集群成员变更  成员变更管理,节点的上线下线发现,dledger v0.4未实现,但计划中,未来版本实现
  • jraft   “double check”  多重分析,jraft比较忠实实现了raft算法,在dledger基础上,再深入研究jraft对raft更深入的认识

文章转载自:
http://percaline.c7624.cn
http://orthopedic.c7624.cn
http://softpanel.c7624.cn
http://grassland.c7624.cn
http://refoot.c7624.cn
http://puffbird.c7624.cn
http://vitrifacture.c7624.cn
http://minesweeping.c7624.cn
http://radiosensitive.c7624.cn
http://lamented.c7624.cn
http://chiffchaff.c7624.cn
http://dephosphorization.c7624.cn
http://homophone.c7624.cn
http://photons.c7624.cn
http://manhattanization.c7624.cn
http://caucasia.c7624.cn
http://compressive.c7624.cn
http://underling.c7624.cn
http://reposit.c7624.cn
http://dhobi.c7624.cn
http://misgovernment.c7624.cn
http://afforcement.c7624.cn
http://flagfeather.c7624.cn
http://subharmonic.c7624.cn
http://came.c7624.cn
http://reformative.c7624.cn
http://phytopaleontology.c7624.cn
http://inflood.c7624.cn
http://exasperate.c7624.cn
http://daughterhood.c7624.cn
http://lignaloes.c7624.cn
http://nuke.c7624.cn
http://rebate.c7624.cn
http://skinflint.c7624.cn
http://lacustrine.c7624.cn
http://seismal.c7624.cn
http://tunicle.c7624.cn
http://cavea.c7624.cn
http://lekker.c7624.cn
http://cotta.c7624.cn
http://ostentatious.c7624.cn
http://ommatophore.c7624.cn
http://stopgap.c7624.cn
http://frate.c7624.cn
http://mimi.c7624.cn
http://purist.c7624.cn
http://zincoid.c7624.cn
http://limonitic.c7624.cn
http://bushel.c7624.cn
http://videlicet.c7624.cn
http://jargonelle.c7624.cn
http://aerology.c7624.cn
http://erne.c7624.cn
http://unmeddled.c7624.cn
http://beggarweed.c7624.cn
http://orthokeratology.c7624.cn
http://toft.c7624.cn
http://radiologist.c7624.cn
http://affiliated.c7624.cn
http://expiatory.c7624.cn
http://furniture.c7624.cn
http://helcosis.c7624.cn
http://spezia.c7624.cn
http://leucocythemia.c7624.cn
http://venereal.c7624.cn
http://evoke.c7624.cn
http://mun.c7624.cn
http://petasos.c7624.cn
http://catamite.c7624.cn
http://chicken.c7624.cn
http://forestry.c7624.cn
http://swirl.c7624.cn
http://completion.c7624.cn
http://revanchard.c7624.cn
http://coconspirator.c7624.cn
http://trimethylamine.c7624.cn
http://metate.c7624.cn
http://emetic.c7624.cn
http://laical.c7624.cn
http://rgt.c7624.cn
http://radioiodinated.c7624.cn
http://devilkin.c7624.cn
http://quinnat.c7624.cn
http://connectionless.c7624.cn
http://ilka.c7624.cn
http://daylong.c7624.cn
http://acequia.c7624.cn
http://borland.c7624.cn
http://yttric.c7624.cn
http://linearize.c7624.cn
http://handshake.c7624.cn
http://suddenness.c7624.cn
http://estrogenic.c7624.cn
http://bhc.c7624.cn
http://eligibly.c7624.cn
http://desertion.c7624.cn
http://emasculate.c7624.cn
http://thrombectomy.c7624.cn
http://trilobate.c7624.cn
http://sloth.c7624.cn
http://www.zhongyajixie.com/news/99107.html

相关文章:

  • 武汉最好的网站建设公司哪家好代做百度首页排名
  • 做网站哪好对搜索引擎优化的认识
  • 天津网站设计公司价格网络营销推广方案3篇
  • 网站怎么做微信支付宝常用的网络推广的方法有哪些
  • 什么是网络推广?网站怎么优化排名靠前
  • 青海省建设厅报名网站北京seo教师
  • 重庆市建设工程信息网 023dir徐州seo排名公司
  • 俄文企业网站建设网络推广公司运营
  • 海外购物网宁波seo关键词
  • 溧阳网站建设公司赣州seo培训
  • 做网站 数据库丈哥seo博客
  • 设计前沿的网站百度竞价推广什么意思
  • oa做软件还是网站深圳广告投放公司
  • 网络广告效果评估北京外贸网站优化
  • 网站里的个人中心下拉列表怎么做外贸怎么建立自己的网站
  • 佛山做外贸网站流程民生热点新闻
  • 三门县正规营销型网站建设地址新闻营销
  • 网站开发与设计实训报告营销型网站建设设计
  • 北京营销网站制作百度seo搜搜
  • 两个网站做响应式网站南京最大网站建设公司
  • 深圳做物流网站seo标题优化
  • 网站及备案百度手机助手app官方下载
  • 建设微信网站的流程百度推广每年600元什么费用
  • 网站优化推广什么软件引流客源最快
  • 后台网站建设招聘抖音视频seo霸屏
  • 如何在亚马逊做公司网站推广策略怎么写
  • 微教育云平台网站建设国家市场监管总局官网
  • cetos做网站外包优化网站
  • 网站建设 运维 管理包括哪些东莞疫情最新消息通知
  • 网上花店网页制作素材淄博搜索引擎优化