欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么在SpringCloud中將Eureka注冊(cè)為服務(wù)

本篇文章給大家分享的是有關(guān)怎么在SpringCloud中將Eureka注冊(cè)為服務(wù),小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)2013年至今,先為門頭溝等服務(wù)建站,門頭溝等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為門頭溝企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

一、將服務(wù)注冊(cè)到Eureka

一個(gè)SpringBoot應(yīng)用如果要注冊(cè)到Spring Cloud環(huán)境(Greenwich.SR3版本),步驟很簡(jiǎn)單:

pom.xml中添加啟動(dòng)器:spring-cloud-starter-netflix-eureka-client;

增加配置:eureka.client.serviceUrl.defaultZone: http://localhost:8100/eureka/;

啟動(dòng)應(yīng)用;

如果注冊(cè)中心正常,此時(shí)就能在注冊(cè)中心發(fā)現(xiàn)這個(gè)應(yīng)用了,如下圖紅框所示:

怎么在SpringCloud中將Eureka注冊(cè)為服務(wù)

按照spring.factories中的配置,EurekaClientAutoConfiguration中的配置都會(huì)生效,包括下面這段代碼返回的bean:

@Bean
public DiscoveryClient discoveryClient(EurekaInstanceConfig config, EurekaClient client) {
  return new EurekaDiscoveryClient(config, client);
}

spring容器初始化時(shí)會(huì)實(shí)例化所有單例bean,就會(huì)執(zhí)行EurekaClientAutoConfiguration的discoveryClient方法獲取這個(gè)bean實(shí)例,于是就構(gòu)造了一個(gè)EurekaDiscoveryClient對(duì)象;

注意EurekaDiscoveryClient的構(gòu)造方法,第二個(gè)入?yún)⑹莄om.netflix.discovery.EurekaClient類型,此對(duì)象同樣來自EurekaClientAutoConfiguration類,如下方法:

@Bean(destroyMethod = "shutdown")
@ConditionalOnMissingBean(value = EurekaClient.class, search = SearchStrategy.CURRENT)
@org.springframework.cloud.context.config.annotation.RefreshScope
@Lazy
public EurekaClient eurekaClient(ApplicationInfoManager manager, EurekaClientConfig config, EurekaInstanceConfig instance) {
  manager.getInfo(); // force initialization
  return new CloudEurekaClient(manager, config, this.optionalArgs,this.context);
}

CloudEurekaClient的父類com.netflix.discovery.DiscoveryClient來自netflix發(fā)布的eureka-client包中,所以可以這么理解:EurekaDiscoveryClient類是個(gè)代理身份,真正的服務(wù)注冊(cè)發(fā)現(xiàn)是委托給netflix的開源包來完成的,我們可以專心的使用SpringCloud提供的服務(wù)注冊(cè)發(fā)現(xiàn)功能,只需要知道EurekaDiscoveryClient即可,真正的服務(wù)是eureka-client來完成的;

接下來需要關(guān)注com.netflix.discovery.DiscoveryClient的構(gòu)造方法,因?yàn)檫@里面有服務(wù)注冊(cè)的邏輯,整個(gè)構(gòu)造方法內(nèi)容太多,無需都細(xì)看,只看關(guān)鍵代碼即可;

DiscoveryClient的構(gòu)造方法中,最熟悉的應(yīng)該是下圖紅框中這段日志輸出的了:

對(duì)應(yīng)的應(yīng)用啟動(dòng)日志中就有這段日志輸出,如下圖紅框:

怎么在SpringCloud中將Eureka注冊(cè)為服務(wù)

紅框中的”us-east-1”,是默認(rèn)的region,來自配置類EurekaClientConfigBean,這里面有各種eureka相關(guān)的配置信息,以及默認(rèn)配置,如下圖:

怎么在SpringCloud中將Eureka注冊(cè)為服務(wù)

繼續(xù)看DiscoveryClient的構(gòu)造方法,服務(wù)注冊(cè)相關(guān)的initScheduledTasks方法在此被調(diào)用,如下圖:

怎么在SpringCloud中將Eureka注冊(cè)為服務(wù)

initScheduledTasks方法的內(nèi)容如下,請(qǐng)注意中文注釋:

  private void initScheduledTasks() {
    //獲取服務(wù)注冊(cè)列表信息
    if (clientConfig.shouldFetchRegistry()) {
      //服務(wù)注冊(cè)列表更新的周期時(shí)間
      int registryFetchIntervalSeconds = clientConfig.getRegistryFetchIntervalSeconds();
      int expBackOffBound = clientConfig.getCacheRefreshExecutorExponentialBackOffBound();
      //定時(shí)更新服務(wù)注冊(cè)列表
      scheduler.schedule(
          new TimedSupervisorTask(
              "cacheRefresh",
              scheduler,
              cacheRefreshExecutor,
              registryFetchIntervalSeconds,
              TimeUnit.SECONDS,
              expBackOffBound,
              new CacheRefreshThread() //該線程執(zhí)行更新的具體邏輯
          ),
          registryFetchIntervalSeconds, TimeUnit.SECONDS);
    }
    if (clientConfig.shouldRegisterWithEureka()) {
      //服務(wù)續(xù)約的周期時(shí)間
      int renewalIntervalInSecs = instanceInfo.getLeaseInfo().getRenewalIntervalInSecs();
      int expBackOffBound = clientConfig.getHeartbeatExecutorExponentialBackOffBound();
      //應(yīng)用啟動(dòng)可見此日志,內(nèi)容是:Starting heartbeat executor: renew interval is: 30
      logger.info("Starting heartbeat executor: " + "renew interval is: " + renewalIntervalInSecs);
      // 定時(shí)續(xù)約
      scheduler.schedule(
          new TimedSupervisorTask(
              "heartbeat",
              scheduler,
              heartbeatExecutor,
              renewalIntervalInSecs,
              TimeUnit.SECONDS,
              expBackOffBound,
              new HeartbeatThread() //該線程執(zhí)行續(xù)約的具體邏輯
          ),
          renewalIntervalInSecs, TimeUnit.SECONDS);

      //這個(gè)Runable中含有服務(wù)注冊(cè)的邏輯
      instanceInfoReplicator = new InstanceInfoReplicator(
          this,
          instanceInfo,
          clientConfig.getInstanceInfoReplicationIntervalSeconds(),
          2); // burstSize

      statusChangeListener = new ApplicationInfoManager.StatusChangeListener() {
        @Override
        public String getId() {
          return "statusChangeListener";
        }

        @Override
        public void notify(StatusChangeEvent statusChangeEvent) {
          if (InstanceStatus.DOWN == statusChangeEvent.getStatus() ||
              InstanceStatus.DOWN == statusChangeEvent.getPreviousStatus()) {
            // log at warn level if DOWN was involved
            logger.warn("Saw local status change event {}", statusChangeEvent);
          } else {
            logger.info("Saw local status change event {}", statusChangeEvent);
          }
          instanceInfoReplicator.onDemandUpdate();
        }
      };

      if (clientConfig.shouldOnDemandUpdateStatusChange()) {
        applicationInfoManager.registerStatusChangeListener(statusChangeListener);
      }
      //服務(wù)注冊(cè)
      instanceInfoReplicator.start(clientConfig.getInitialInstanceInfoReplicationIntervalSeconds());
    } else {
      logger.info("Not registering with Eureka server per configuration");
    }
  }

以上就是怎么在SpringCloud中將Eureka注冊(cè)為服務(wù),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文題目:怎么在SpringCloud中將Eureka注冊(cè)為服務(wù)
瀏覽路徑:http://chinadenli.net/article28/jgjejp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、電子商務(wù)、網(wǎng)站策劃、做網(wǎng)站響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
久久精品中文扫妇内射| 91偷拍视频久久精品| 好吊一区二区三区在线看| 国产精品久久女同磨豆腐| 午夜国产福利在线播放| 国产欧美亚洲精品自拍| 日本免费一本一二区三区| 国产亚洲成av人在线观看| 九九热九九热九九热九九热| 欧美一区二区三区十区| 日韩欧美精品一区二区三区| 美国女大兵激情豪放视频播放| 自拍偷拍一区二区三区| 欧美激情一区=区三区| 欧美日韩国产精品自在自线| 在线日韩欧美国产自拍| 日本高清一区免费不卡| 国产av乱了乱了一区二区三区| 高清一区二区三区大伊香蕉| 伊人久久五月天综合网| 久久免费精品拍拍一区二区 | 成人午夜激情在线免费观看| 欧美日韩精品久久第一页| 欧美成人黄色一区二区三区| 少妇激情在线免费观看| 91午夜少妇极品福利| 欧美成人欧美一级乱黄| 91欧美亚洲视频在线| 日本一级特黄大片国产| 操白丝女孩在线观看免费高清| 开心久久综合激情五月天| 亚洲精品国产精品日韩| 国产亚洲精品久久99| 午夜久久精品福利视频| 中文字幕av诱惑一区二区| 一区二区三区精品人妻| 最好看的人妻中文字幕| 少妇人妻精品一区二区三区| 亚洲日本中文字幕视频在线观看| 亚洲男人的天堂久久a| 国产三级欧美三级日韩三级|