如何集成 Eureka Client
本節(jié)將創(chuàng)建一個(gè)micro-weather-cureka-client作為客戶端,并演示如何將自身向注冊(cè)服務(wù)器進(jìn)行注冊(cè),這樣以便其他服務(wù)都能夠通過(guò)名稱來(lái)訪問(wèn)服務(wù)。該客戶端基于Eureka Client來(lái)實(shí)現(xiàn)。
micro-weather-eureka-client可以基于micro-weather-eureka-server應(yīng)用來(lái)做更改。
所需環(huán)境
為了演示本例,需要采用如下開(kāi)發(fā)環(huán)境。
.JDK8。
.Gradle 4.0。
Spring Boot 2.0.0.M3。
.Spring Cloud Starter Netflix Eureka Client Finchley.M2。
更改build.gradle配置
與micro-weather-eureka-server相比,micro-weather-eureka-client應(yīng)用的build.gradle配置的變化,主要是在依賴上面,將Eureka Server的依賴改為Eureka Client即可。
dependencies {
//添加Spring Cloud Starter Netflix Eureka Client依賴compile ('org.springframework.cloud:spring-cloud-starter-netflix-
eureka-client')
//該依賴用于測(cè)試階段testCompile('org.springframework.boot:spring-boot-starter-test')
}
一個(gè)最簡(jiǎn)單的Eureka Client
將@EnableEurekaServer注解改為@EnableDiscoveryClient。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscovery
Client;
/**
*主應(yīng)用程序.
*
*@since 1-o.0 2017年11月01日
*@author <a href="https://waylau.com">Way Lau</a>
*/
@SpringBootApplication
@EnableDiscoveryClient
public class Application
public static void main(String[] args){SpringApplication.run(Application.class,args);
}}
org.springframework.cloud.client.discovery.EnableDiscoveryClient注解,就是一個(gè)自動(dòng)發(fā)現(xiàn)客戶端的實(shí)現(xiàn)。
修改項(xiàng)目配置
修改application.properties,修改為如下配置。
spring.application.name: micro-weather-eureka-client
eureka.client.serviceUrl.defaultZone: http://localhost:8761/eureka/
其中:.spring.application.name:指定了應(yīng)用的名稱;
.eureka.client.serviceUrl.defaultZonet:指明了Eureka Server的位置。
運(yùn)行和測(cè)試
首先運(yùn)行Eureka Server實(shí)例micro-weather-eureka-server,它啟動(dòng)在8761端口。
而后分別在8081和8082上啟動(dòng)了Eureka Client實(shí)例micro-weather-eureka-client。
JAVA -jar micro-weather-eureka-client-1.0.0.jar--server.port=8081
java -jar micro-weather-eureka-client-1.0.0.jar --server.port=8082
這樣,就可以在Eureka Server 上看到這兩個(gè)實(shí)例的信息。訪問(wèn)http:/localhost:8761,可以看到如圖8-2所示的Eureka Server自帶的UI管理界面。
從管理界面“Instances currently registered with Eureka”中,能看到每個(gè)Eureka Client的狀態(tài),相同的應(yīng)用(指具有相同的spring.application.name )下,能夠看到每個(gè)應(yīng)用的實(shí)例。
如果Eureka Client離線了,Eureka Server也能及時(shí)感知到。
不同的應(yīng)用之間,就能夠通過(guò)應(yīng)用的名稱來(lái)互相發(fā)現(xiàn)。
其中,從界面上也可以看出,Eureka Server運(yùn)行的IP為192.168.1.101。