上一篇是配置服务端,接下来是Eureka客户端
完整代码:
1.配置子项目依赖,user:pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.启动类添加注解@EnableEurekaClient
@SpringBootApplication
@EnableEurekaClient
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class, args);
}
}
3.配置文件添加eureka配置
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka
instance:
#注册IP到EurekaServer
preferIpAddress: true
配置完启动项目user 和 eurekaServererver,访问http://localhost:8761/
知识点来了:
参数说明:
AMIs:不知道什么
Availability Zones :可用节点数
Status:当前状态 up/down
total-avail-memory:总共可用内存
environment:环境名称
num-of-cpus:CPU数量(包括逻辑处理器)
current-memory-usage:当前已使用内存百分比
server-uptime:服务已经运行时长,单位:时:分
registered-replicas:向其他注册中心注册的副本地址
unavailable-replicas:不可用的副本地址
available-replicas:可用的副本地址
异常说明:
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY’RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
默认情况下,如果Eureka Server在一定时间内(默认90秒)没有接收到某个微服务实例的心跳,Eureka Server将会移除该实例。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,而微服务本身是正常运行的,此时不应该移除这个微服务,所以引入了自我保护机制
解决方法:
eureka.server.enable-self-preservation
设为true
当出现网路故障时,会发生以下行为
1、Eureka Server不再从注册列表中移除因为长时间没收到心跳而应该过期的服务。
2、Eureka Server仍然能够接受新服务的注册和查询请求,但是不会被同步到其它节点上,保证当前节点依然可用。
3、当网络稳定时,当前Eureka Server新的注册信息会被同步到其它节点中。