<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringCloud微服務(wù)架構(gòu)開發(fā)實(shí)戰(zhàn):實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)

          共 3597字,需瀏覽 8分鐘

           ·

          2022-05-23 10:15

          實(shí)現(xiàn)服務(wù)的注冊(cè)與發(fā)現(xiàn)

          在前面分別用Eureka Server和Eureka Client來(lái)搭建了一臺(tái)注冊(cè)服務(wù)器,以及多個(gè)Eureka Client客戶端。Eureka Client在啟動(dòng)后,就會(huì)將自己注冊(cè)到EurekaServer中,這樣,Eureka Server就能及時(shí)感知到注冊(cè)上來(lái)的Eureka Client,以便其他服務(wù)通過(guò)應(yīng)用的名稱來(lái)調(diào)用這些服務(wù)。

          在理解了這些原理之后,我們就能非常簡(jiǎn)單地通過(guò)天氣預(yù)報(bào)系統(tǒng)來(lái)實(shí)現(xiàn)服務(wù)的注冊(cè)和發(fā)現(xiàn)。

          原有的天氣預(yù)報(bào)微服務(wù)都需要進(jìn)行一些微調(diào),成為可以被Eureka Server注冊(cè)和發(fā)現(xiàn)的EurekaClient。這樣,最終會(huì)形成以下4個(gè)新的應(yīng)用。

          • .msa-weather-collection-eureka:基于msa-weather-collection-server和Eureka Client實(shí)現(xiàn)的天氣數(shù)據(jù)采集微服務(wù)。

          • .msa-weather-data-eureka:基于msa-weather-data-server和Eureka Client實(shí)現(xiàn)的天氣數(shù)據(jù)API微服務(wù)。

          • .msa-weather-city-eureka:基于msa-weather-city-server和Eureka Client實(shí)現(xiàn)的城市數(shù)據(jù)微服務(wù)。

          • msa-weather-report-eureka:基于msa-weather-report-server和Eureka Client實(shí)現(xiàn)的天氣預(yù)報(bào)采集微服務(wù)。


          所需環(huán)境

          為了演示本例,需要采用如下開發(fā)環(huán)境。

          .JDK8。

          .Gradle 4.0。

          Redis 3.2.100。

          . Spring Boot 2.0.0.M3。

          .Spring Cloud Starter Netflix Eureka Client Finchley.M2。

          更改build.gradle配置

          4個(gè)新的應(yīng)用的build.gradle配置的變化,相比于原來(lái)的應(yīng)用而言,主要體現(xiàn)在以下幾點(diǎn)。

          • springBootVersion變量指定了Spring Boot的版本,這里設(shè)定為2.0.0.M3,而非之前的2.0.0.M4.因?yàn)樽钚碌腟pring Cloud并未對(duì)Spring Boot 2.0.0.M4做好兼容。

          • 添加了springCloudVersion變量,用于指定Spring Cloud 的版本。目前,本文中主要用了Finchley.M2版本。

          • 在dependencyManagement(依賴管理)中,我們導(dǎo)入了Spring Cloud的依賴的管理。

          • 最為重要的是,在依賴中,我們添加了Spring Cloud Starter Netflix Eureka Client依賴。

          以下是列出的配置點(diǎn)。

          /lbuildscript代碼塊中腳本優(yōu)先執(zhí)行
          buildscript {
          /l ext用于定義動(dòng)態(tài)屬性
          ext {
          springBootversion='2.0.0.M3'
          }
          /l ...
          // ...
          ext {
          springCloudVersion ='Finchley.M2'
          }
          dependencies {
          /l ...
          //添加Spring Cloud Starter Netflix Eureka Client依賴
          compile('org.springframework.cloud:spring-cloud-starter-netflix-
          eureka-client')
          }
          dependencyManagement {
          imports {
          mavenBom "org.springframework.cloud:spring-cloud-dependencies:
          ${springCloudversion}"
          }
          }


          啟用Eureka Client

          要啟用Eureka Client,在每個(gè)應(yīng)用的根目錄下Application類中添加注解@EnableDiscoveryClient即可。

          import org.springframework.boot.SpringApplication;
          import org.springframework.boot.autoconfigure.SpringBootApplication;
          import org.springframework.cloud.client.discovery.EnableDiscovery
          Client;
          ★*
          *主應(yīng)用程序.
          *
          *since 1.0.0 20171101
          *@author "https://waylau.com">Way Lau
          */
          @SpringBootApplication
          @EnableDiscoveryclient
          public class Application{
          public static void main(String [l args){
          SpringApplication.run(Application.class,args);
          }
          }

          修改項(xiàng)目配置

          修改application.properties,修改相應(yīng)的配置。其中:

          • eureka.client.serviceUrl.defaultZonet:都指向同一個(gè)Eureka Server;

          • .spring.application.name:指定為不同應(yīng)用的各自的名稱。

          以下是
          msa-weather-collection-eureka的配置示例。

          spring.application.name: msa-weather-collection-eureka
          eureka.client.serviceUrl.defaultZone:http://localhost:8761/eureka/

          其他三個(gè)應(yīng)用的配置類似,spring.application.name分別是msa-weather-data-cureka、msa-weather-city-eureka、msa-weather-report-eureka。

          運(yùn)行和測(cè)試

          首先運(yùn)行Eureka Server實(shí)例
          micro-weather-eureka-server,它啟動(dòng)在8761端口。

          其次要運(yùn)行Redis服務(wù)器。

          然后分別在8081和8082上啟動(dòng)了
          msa-weather-collection-eureka實(shí)例兩個(gè),在8083和8084上啟動(dòng)了msa-weather-data-eureka實(shí)例兩個(gè),在8085和8086上啟動(dòng)了msa-weather-city-eureka實(shí)例兩個(gè),在8087和8088上啟動(dòng)了msa-weather-report-eureka實(shí)例兩個(gè)。啟動(dòng)腳本如下。

          java -jar micro-weather-eureka-server-1.0.0.jar --server.port=8761
          java -jar msa-weather-collection-eureka-1.0.0.jar --server.port=8081
          java-jar msa-weather-collection-eureka-l.0.0.jar--server.port=8082
          java -jar msa-weather-data-eureka-1.0.0.jar --server.port=8083
          java-jar msa-weather-data-eureka-1.0.0.jar --server.port=8084
          java-jar msa-weather-city-eureka-1.0.0.jar --server.port=8085
          java -jar msa-weather-city-eureka-1.0.0.jar--server.port=8086
          java -jarmsa-weather-report-eureka-1.0.0.jar --server.port=8087
          java -jar msa-weather-report-eureka-1.0.0.jar --server.port=8088

          這樣,就可以在Eureka Server上看到這8個(gè)實(shí)例的信息。訪問(wèn)http://localhost:8761,可以看到如圖8-3所示的Eureka Server自帶的UI管理界面。


          從管理界面中可以看到每個(gè)Eureka Client的狀態(tài)。如果Eureka Client離線了,Eureka Server也能及時(shí)感知到。

          其中,從界面上也可以看出,Eureka Server運(yùn)行的IP為192.168.1.101。

          本篇文章內(nèi)容給大家講解的是實(shí)現(xiàn)服務(wù)的注冊(cè)與發(fā)現(xiàn)

          1. 下篇文章給大家講解微服務(wù)的消費(fèi);

          2. 覺得文章不錯(cuò)的朋友可以轉(zhuǎn)發(fā)此文關(guān)注小編;

          3. 感謝大家的支持!


          本文就是愿天堂沒有BUG給大家分享的內(nèi)容,大家有收獲的話可以分享下,想學(xué)習(xí)更多的話可以到微信公眾號(hào)里找我,我等你哦。

          瀏覽 33
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  开心激情站中文字幕 | 日日爱视频 | 国产精品国产三级国产专区53 | 九九无码专区免费喷水 | 欧美高潮AAAAAA片 |