本节将创建一个micro-weather-cureka-client作为客户端,并演示如何将自身向注册服务器进行注册,这样以便其他服务都能够通过名称来访问服务。该客户端基于Eureka Client来实现。
micro-weather-eureka-client可以基于micro-weather-eureka-server应用来做更改。
为了演示本例,需要采用如下开发环境。
.JDK8。
.Gradle 4.0。
Spring Boot 2.0.0.M3。
.Spring Cloud Starter Netflix Eureka Client Finchley.M2。
与micro-weather-eureka-server相比,micro-weather-eureka-client应用的build.gradle配置的变化,主要是在依赖上面,将Eureka Server的依赖改为Eureka Client即可。
dependencies {
//添加Spring Cloud Starter Netflix Eureka Client依赖compile ('org.springframework.cloud:spring-cloud-starter-netflix-
eureka-client')
//该依赖用于测试阶段testCompile('org.springframework.boot:spring-boot-starter-test')
}
将@EnableEurekaServer注解改为@EnableDiscoveryClient。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscovery
Client;
/**
*主应用程序.
*
*@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注解,就是一个自动发现客户端的实现。
修改application.properties,修改为如下配置。
spring.application.name: micro-weather-eureka-client
eureka.client.serviceUrl.defaultZone: http://localhost:8761/eureka/
其中:.spring.application.name:指定了应用的名称;
.eureka.client.serviceUrl.defaultZonet:指明了Eureka Server的位置。
首先运行Eureka Server实例micro-weather-eureka-server,它启动在8761端口。
而后分别在8081和8082上启动了Eureka Client实例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 上看到这两个实例的信息。访问http:/localhost:8761,可以看到如图8-2所示的Eureka Server自带的UI管理界面。
从管理界面“Instances currently registered with Eureka”中,能看到每个Eureka Client的状态,相同的应用(指具有相同的spring.application.name )下,能够看到每个应用的实例。
如果Eureka Client离线了,Eureka Server也能及时感知到。
不同的应用之间,就能够通过应用的名称来互相发现。
其中,从界面上也可以看出,Eureka Server运行的IP为192.168.1.101。