Eureka分为客户端和服务端,服务端可以将服务注册到Eureka中心,并提供监控;客户端可以注册到Eureka中心,以便其他服务可以通过Eureka搜索到以及调用
本实例为springcloud的项目结构,所有服务都继承自maven的父工程
一 服务端搭建(Eureka的module)
1 在Eureka模块中添加Eureka Server的依赖
<!--eureka-server服务端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
2 yml配置文件中配置Eureka相关信息
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #eureka服务端的实例名称
client:
register-with-eureka: false #false表示不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
#defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
3 在启动类上添加 @EnableEurekaServer注解,标志该服务为Eureka服务端
二 客户端创建
1 客户端模块中添加Eureka Client依赖
<!-- 将微服务provider侧注册进eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
2 yml配置文件中配置 要注册到的Eureka中心地址
eureka:
client: #客户端注册进eureka服务列表内
service-url:
defaultZone: http://localhost:7001/eureka
#defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
instance:
instance-id: microservicecloud-dept8001
prefer-ip-address: true #访问路径可以显示IP地址
其中:
instance-id: microservicecloud-dept8001 是指定该服务暴露的名称为microservicecloud-dept8001,
prefer-ip-address: true 在Eureka中心,访问路径可以显示IP地址
3 在启动类上添加@EnableEurekaClient注解,标志该服务为Eureka Client,会自动注册到配置好的Eureka中心去
Info内容详细信息
这时候,访问Eureka监控页面,可以看到已注册的服务,但是点开服务详情页没有相关信息,
下面来解决该问题
1 Client服务中添加springboot的监控依赖
<!-- actuator监控信息完善 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2 父工程中添加build信息
<build>
<finalName>microservicecloud</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimit>$</delimit>
</delimiters>
</configuration>
</plugin>
</plugins>
</build>
3 在Client的yml配置文件配置info信息
info:
app.name: zgq-microservicecloud
company.name: www.xxx.com
build.artifactId: $project.artifactId$
build.version: $project.version$
配置完这些之后,再次点开Eureka的管理中心,点开Eureka Client的info信息,就会显示如下信息,就是上面配置的信息
{
"app": {
"name": "zgq-microservicecloud"
},
"company": {
"name": "www.xxx.com"
},
"build": {
"artifactId": "microservicecloud-provider-dept-8001",
"version": "0.0.1-SNAPSHOT"
}
}