中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring cloud中如何進行服務注冊與發現Eureka

發布時間:2021-10-21 13:50:17 來源:億速云 閱讀:143 作者:柒染 欄目:大數據

Spring cloud中如何進行服務注冊與發現Eureka,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

Spring Cloud簡介

Spring Cloud是一個基于Spring Boot實現的云應用開發工具,它為基于JVM的云應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態管理等操作提供了一種簡單的開發方式。

Spring Cloud包含了多個子項目(針對分布式系統中涉及的多個不同開源產品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud0 CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud CLI等項目。

Spring Cloud Eureka

首先,我們來嘗試使用Spring Cloud Eureka來實現服務治理。

Spring Cloud Eureka是Spring Cloud Netflix項目下的服務治理模塊。而Spring Cloud Netflix項目是Spring Cloud的子項目之一,主要內容是對Netflix公司一系列開源產品的包裝,它為Spring Boot應用提供了自配置的Netflix OSS整合。通過一些簡單的注解,開發者就可以快速的在應用中配置一下常用模塊并構建龐大的分布式系統。它主要提供的模塊包括:服務發現(Eureka),斷路器(Hystrix),智能路由(Zuul),客戶端負載均衡(Ribbon)等。

下面,就來具體看看如何使用Spring Cloud Eureka實現服務治理。

創建“服務注冊中心”

創建一個基礎的Spring Boot工程,命名為eureka-server,并在pom.xml中引入需要的依賴內容:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.4.RELEASE</version><relativePath/></parent><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency>   <groupId>org.springframework.cloud</groupId>   <artifactId>spring-cloud-dependencies</artifactId>   <version>Dalston.SR1</version>   <type>pom</type>   <scope>import</scope></dependency></dependencies></dependencyManagement>

通過@EnableEurekaServer注解啟動一個服務注冊中心提供給其他應用進行對話。這一步非常的簡單,只需要在一個普通的Spring Boot應用中添加這個注解就能開啟此功能,比如下面的例子:

@EnableEurekaServer@SpringBootApplicationpublic class Application {public static void main(String[] args) {new SpringApplicationBuilder(Application.class).web(true).run(args);
    }
}

在默認設置下,該服務注冊中心也會將自己作為客戶端來嘗試注冊它自己,所以我們需要禁用它的客戶端注冊行為,只需要在application.properties配置文件中增加如下信息:

spring.application.name=eureka-serverserver.port=1001eureka.instance.hostname=localhosteureka.client.register-with-eureka=falseeureka.client.fetch-registry=false

為了與后續要進行注冊的服務區分,這里將服務注冊中心的端口通過server.port屬性設置為1001。啟動工程后,訪問:http://localhost:1001/,可以看到下面的頁面,其中還沒有發現任何服務。

Spring cloud中如何進行服務注冊與發現Eureka

創建“服務提供方”

下面我們創建提供服務的客戶端,并向服務注冊中心注冊自己。本文我們主要介紹服務的注冊與發現,所以我們不妨在服務提供方中嘗試著提供一個接口來獲取當前所有的服務信息。

首先,創建一個基本的Spring Boot應用。命名為eureka-client,在pom.xml中,加入如下配置:

<parent> <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency>   <groupId>org.springframework.cloud</groupId>   <artifactId>spring-cloud-dependencies</artifactId>   <version>Dalston.SR1</version>   <type>pom</type>   <scope>import</scope></dependency></dependencies></dependencyManagement>

其次,實現/dc請求處理接口,通過DiscoveryClient對象,在日志中打印出服務實例的相關內容。

@RestControllerpublic class DcController {@AutowiredDiscoveryClient discoveryClient;@GetMapping("/dc")public String dc() {
        String services = "Services: " + discoveryClient.getServices();
        System.out.println(services);return services;
    }

}

最后在應用主類中通過加上@EnableDiscoveryClient注解,該注解能激活Eureka中的DiscoveryClient實現,這樣才能實現Controller中對服務信息的輸出。

@EnableDiscoveryClient@SpringBootApplicationpublic class Application {public static void main(String[] args) {new SpringApplicationBuilder(
            ComputeServiceApplication.class).web(true).run(args);
    }
}

我們在完成了服務內容的實現之后,再繼續對application.properties做一些配置工作,具體如下

spring.application.name=eureka-clientserver.port=2001eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/

通過spring.application.name屬性,我們可以指定微服務的名稱后續在調用的時候只需要使用該名稱就可以進行服務的訪問。eureka.client.serviceUrl.defaultZone屬性對應服務注冊中心的配置內容,指定服務注冊中心的位置。為了在本機上測試區分服務提供方和服務注冊中心,使用server.port屬性設置不同的端口。

啟動該工程后,再次訪問:http://localhost:1001/。可以如下圖內容,我們定義的服務被成功注冊了。Spring cloud中如何進行服務注冊與發現Eureka

當然,我們也可以通過直接訪問eureka-client服務提供的/dc接口來獲取當前的服務清單,只需要訪問:http://localhost:2001/dc,我們可以得到如下輸出返回:

Services: [eureka-client]

其中,方括號中的eureka-client就是通過Spring Cloud定義的DiscoveryClient接口在eureka的實現中獲取到的所有服務清單。由于Spring Cloud在服務發現這一層做了非常好的抽象,所以,對于上面的程序,我們可以無縫的從eureka的服務治理體系切換到consul的服務治理體系中區。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三河市| 东阳市| 苏州市| 陇南市| 北票市| 乌拉特前旗| 石柱| 彭山县| 西畴县| 马尔康县| 新野县| 新巴尔虎右旗| 涿鹿县| 通城县| 无极县| 晴隆县| 广宗县| 增城市| 肃南| 察雅县| 依安县| 华容县| 岳阳县| 通渭县| 临泽县| 六枝特区| 视频| 花莲县| 白水县| 桐梓县| 商河县| 南康市| 开原市| 无锡市| 安平县| 潼关县| 社旗县| 连南| 墨竹工卡县| 乃东县| 渑池县|