0%

Eureka简介

Eureka简介

Eureka是springCloud在一开始的时候推荐使用的注册中心

Eureka包含两个组件:Eureka Server和Eureka Client

Eureka Server提供服务注册服务,各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到

EurekaClient是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)。

Eureka Server注册中心配置

依赖

1
2
3
4
5
<!--eureka-server服务端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>

如果是F版及以上的话,需要使用该依赖

1
2
3
4
5
<!--新版本的eureka-server服务端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

yml配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
eureka:
instance:
hostname: localhost
# 过期时间,默认90s, 可不配置
lease-expiration-duration-in-seconds: 90
# 续约时间,默认30s,可不配置
lease-renewal-interval-in-seconds: 30
# ip地址优先
prefer-ip-address: true
server:
# 开启自我保护机制,可以在本地测试时关闭,在正式上线时不建议关闭,默认为true
enable-self-preservation: true
# 去除失效服务的时间间隔(毫秒)
eviction-interval-timer-in-ms: 4000
client:
# 启用eureka客户端,默认为true, 可不配置
enabled: true
# 不需要拉取注册表,本身就是注册中心,只需要维护实例,不需要拉取注册,默认为true
fetchRegistry: false
# 两个心跳参数,默认都是30s,可不配置
instance-info-replication-interval-seconds: 30
registry-fetch-interval-seconds: 30
# 不向注册中心注册自身,默认为true
registerWithEureka: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ # 设置与eureka server交互的地址,用来查询服务和注册服务
# 如果是集群的eureka server,需要配置其他server机器的地址
# defaultZone: http://eureka2:7002/eureka,http://eureka3:7003/eureka

启动类

1
2
3
4
5
6
7
8
@SpringBootApplication
@EnableEurekaServer // 启动Eureka Server相关功能
public class EurekaServerApp {

public static void main(String[] args) {
SpringApplication.run(EurekaServerApp.class,args);
}
}

业务微服务配置

依赖

1
2
3
4
5
<!-- eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

如果是F版及以上的话,需要使用该依赖

1
2
3
4
5
<!-- 新版 eureka client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

yml配置

1
2
3
4
5
6
7
8
9
10
11
12
13
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka
instance:
instance-id: ${spring.cloud.client.ip-address}:${server.port}
prefer-ip-address: true #以IP地址注册到服务中心
ip-address: 192.168.217.211
non-secure-port: 8767
#Eureka客户端向服务端发送心跳的时间间隔,单位为秒(客户端告诉服务端自己会按照该规则),默认30
lease-renewal-interval-in-seconds: 10
#Eureka服务端在收到最后一次心跳之后等待的时间上限,单位为秒,超过则剔除(客户端告诉服务端按照此规则等待自己),默认90
lease-expiration-duration-in-seconds: 30

启动类

1
2
3
4
5
6
7
8
@SpringBootApplication
@EnableEurekaClient // 服务启动后注册到Eureka Server注册中心中
public class ProviderApp {

public static void main(String[] args) {
SpringApplication.run(ProviderApp.class,args);
}
}