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

网站首页制作的过程河南网站推广公司

网站首页制作的过程,河南网站推广公司,wordpress begin主题下载,团风网站建设系列文章目录 【zookeeper核心源码解析】第一课:zk启动类核心流程序列图 【zookeeper核心源码解析】第二课:俯瞰QuorumPeer启动核心流程,实现选举关键流程 【zookeeper核心源码解析】第三课:leader与follower何时开始同步&#…

系列文章目录

【zookeeper核心源码解析】第一课:zk启动类核心流程序列图
【zookeeper核心源码解析】第二课:俯瞰QuorumPeer启动核心流程,实现选举关键流程
【zookeeper核心源码解析】第三课:leader与follower何时开始同步,如何同步数据
【zookeeper核心源码解析】第四课:客户端与服务端读写的io核心流程

【zookeeper核心源码解析】第二课:俯瞰QuorumPeer启动核心流程,实现选举关键流程

  • 系列文章目录
  • 1. QuorumPeer.run() 核心流程执行流程进行选举(选举过程与结果)
  • 2. run方法解释


1. QuorumPeer.run() 核心流程执行流程进行选举(选举过程与结果)

 @Overridepublic void run() {setName("QuorumPeer" + "[myid=" + getId() + "]" +cnxnFactory.getLocalAddress());LOG.debug("Starting quorum peer");try {jmxQuorumBean = new QuorumBean(this);MBeanRegistry.getInstance().register(jmxQuorumBean, null);for(QuorumServer s: getView().values()){ZKMBeanInfo p;if (getId() == s.id) {p = jmxLocalPeerBean = new LocalPeerBean(this);try {MBeanRegistry.getInstance().register(p, jmxQuorumBean);} catch (Exception e) {LOG.warn("Failed to register with JMX", e);jmxLocalPeerBean = null;}} else {p = new RemotePeerBean(s);try {MBeanRegistry.getInstance().register(p, jmxQuorumBean);} catch (Exception e) {LOG.warn("Failed to register with JMX", e);}}}} catch (Exception e) {LOG.warn("Failed to register with JMX", e);jmxQuorumBean = null;}try {/** Main loop*/while (running) {switch (getPeerState()) {case LOOKING:LOG.info("LOOKING");if (Boolean.getBoolean("readonlymode.enabled")) {LOG.info("Attempting to start ReadOnlyZooKeeperServer");// Create read-only server but don't start it immediatelyfinal ReadOnlyZooKeeperServer roZk = new ReadOnlyZooKeeperServer(logFactory, this,new ZooKeeperServer.BasicDataTreeBuilder(),this.zkDb);// Instead of starting roZk immediately, wait some grace// period before we decide we're partitioned.//// Thread is used here because otherwise it would require// changes in each of election strategy classes which is// unnecessary code coupling.Thread roZkMgr = new Thread() {public void run() {try {// lower-bound grace period to 2 secssleep(Math.max(2000, tickTime));if (ServerState.LOOKING.equals(getPeerState())) {roZk.startup();}} catch (InterruptedException e) {LOG.info("Interrupted while attempting to start ReadOnlyZooKeeperServer, not started");} catch (Exception e) {LOG.error("FAILED to start ReadOnlyZooKeeperServer", e);}}};try {roZkMgr.start();setCurrentVote(makeLEStrategy().lookForLeader());} catch (Exception e) {LOG.warn("Unexpected exception",e);setPeerState(ServerState.LOOKING);} finally {// If the thread is in the the grace period, interrupt// to come out of waiting.roZkMgr.interrupt();roZk.shutdown();}} else {try {setCurrentVote(makeLEStrategy().lookForLeader());} catch (Exception e) {LOG.warn("Unexpected exception", e);setPeerState(ServerState.LOOKING);}}break;case OBSERVING:try {LOG.info("OBSERVING");setObserver(makeObserver(logFactory));observer.observeLeader();} catch (Exception e) {LOG.warn("Unexpected exception",e );                        } finally {observer.shutdown();setObserver(null);setPeerState(ServerState.LOOKING);}break;case FOLLOWING:try {LOG.info("FOLLOWING");setFollower(makeFollower(logFactory));follower.followLeader();} catch (Exception e) {LOG.warn("Unexpected exception",e);} finally {follower.shutdown();setFollower(null);setPeerState(ServerState.LOOKING);}break;case LEADING:LOG.info("LEADING");try {setLeader(makeLeader(logFactory));leader.lead();setLeader(null);} catch (Exception e) {LOG.warn("Unexpected exception",e);} finally {if (leader != null) {leader.shutdown("Forcing shutdown");setLeader(null);}setPeerState(ServerState.LOOKING);}break;}}} finally {LOG.warn("QuorumPeer main thread exited");try {MBeanRegistry.getInstance().unregisterAll();} catch (Exception e) {LOG.warn("Failed to unregister with JMX", e);}jmxQuorumBean = null;jmxLocalPeerBean = null;}}

2. run方法解释

1.选举状态有四种,一种是LOOKING,FOLLOWING,LEADING,OBSERVING
2. 一开始是Looking状态,进行选举,选举结束后,才决定leader和follower,分别创建leader和follower对象,并执行leader.lead(), follower.followLeader() 的方式,这时,完成leader和follower进程启动

http://www.mnyf.cn/news/51200.html

相关文章:

  • wordpress搭建的知名网站google浏览器网页版
  • 网站建设seo网络推广搜索引擎优化怎么做的
  • 视频网站如何推广搜索引擎优化seo论文
  • 山西智能网站建设制作设计网站logo
  • 开个做网站公司百度平台商家联系方式
  • 自己电脑怎么做web网站吗百度网站官网网址
  • 百度推广开户电话seo是什么服
  • 赚钱网站入口行业关键词搜索量排名
  • 网站建设科研申报书搜索引擎营销的典型案例
  • 网站界面设计需要社交媒体营销三种方式
  • 北京公司网站制作哪家专业网络营销推广平台
  • 好的网站建站公司优化设计三要素
  • 镇江网站建设价位汽车宣传软文
  • 4s店网站建设seo外包公司
  • php做网站教程seo全称是什么
  • 做网站 怎么连到数据库微博seo排名优化
  • 网站开发实现页面的跳转昆明网络推广
  • 企业logo设计在线生成seo软件简单易排名稳定
  • 护士做二类学分网站推广关键词
  • 沧州网站建设 网络服务青岛网站设计制作
  • 如何做网站的压力测试广州seo技术优化网站seo
  • 襄樊门户网站建设培训公司排名
  • 外贸网站制作策划网站域名注册
  • 网站优化有哪些武汉seo
  • 西安公司地址广州市网络seo外包
  • 怎么建设网站是什么seo排名第一
  • 如何制作h5做网站云南疫情最新情况
  • 网站内容规划企业文化墙
  • 武汉做网站建设的公司镇江百度推广
  • 网站怎么做话术友情链接怎么连