1. SpringCloud微服務架構開發(fā)實戰(zhàn):實現服務注冊與發(fā)現

        共 3597字,需瀏覽 8分鐘

         ·

        2022-05-23 10:15

        實現服務的注冊與發(fā)現

        在前面分別用Eureka Server和Eureka Client來搭建了一臺注冊服務器,以及多個Eureka Client客戶端。Eureka Client在啟動后,就會將自己注冊到EurekaServer中,這樣,Eureka Server就能及時感知到注冊上來的Eureka Client,以便其他服務通過應用的名稱來調用這些服務。

        在理解了這些原理之后,我們就能非常簡單地通過天氣預報系統(tǒng)來實現服務的注冊和發(fā)現。

        原有的天氣預報微服務都需要進行一些微調,成為可以被Eureka Server注冊和發(fā)現的EurekaClient。這樣,最終會形成以下4個新的應用。

        • .msa-weather-collection-eureka:基于msa-weather-collection-server和Eureka Client實現的天氣數據采集微服務。

        • .msa-weather-data-eureka:基于msa-weather-data-server和Eureka Client實現的天氣數據API微服務。

        • .msa-weather-city-eureka:基于msa-weather-city-server和Eureka Client實現的城市數據微服務。

        • msa-weather-report-eureka:基于msa-weather-report-server和Eureka Client實現的天氣預報采集微服務。


        所需環(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個新的應用的build.gradle配置的變化,相比于原來的應用而言,主要體現在以下幾點。

        • springBootVersion變量指定了Spring Boot的版本,這里設定為2.0.0.M3,而非之前的2.0.0.M4.因為最新的Spring Cloud并未對Spring Boot 2.0.0.M4做好兼容。

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

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

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

        以下是列出的配置點。

        /lbuildscript代碼塊中腳本優(yōu)先執(zhí)行
        buildscript {
        /l ext用于定義動態(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,在每個應用的根目錄下Application類中添加注解@EnableDiscoveryClient即可。

        import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication;
        import org.springframework.cloud.client.discovery.EnableDiscovery
        Client;
        ★*
        *主應用程序.
        *
        *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);
        }
        }

        修改項目配置

        修改application.properties,修改相應的配置。其中:

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

        • .spring.application.name:指定為不同應用的各自的名稱。

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

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

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

        運行和測試

        首先運行Eureka Server實例
        micro-weather-eureka-server,它啟動在8761端口。

        其次要運行Redis服務器。

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

        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個實例的信息。訪問http://localhost:8761,可以看到如圖8-3所示的Eureka Server自帶的UI管理界面。


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

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

        本篇文章內容給大家講解的是實現服務的注冊與發(fā)現

        1. 下篇文章給大家講解微服務的消費;

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

        3. 感謝大家的支持!


        本文就是愿天堂沒有BUG給大家分享的內容,大家有收獲的話可以分享下,想學習更多的話可以到微信公眾號里找我,我等你哦。

        瀏覽 33
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 国产精品 久久久精品四季影院 | 婷婷综合五月激情 | 国产主播毛片 | 337p粉嫩大胆色噜噜噜噜在线播放 | 依依成人在线 |