Eureka Client 配置
Eureka Client 配置
一、初级配置(傻瓜式)
1、新建一个 Spring Boot 项目
2、在 pom.xml 文件中添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
3、在 Application.java 文件中开启 服务发现注解,如下
@SpringBootApplication
@EnableDiscoveryClient
public class UserInfoServerApplication
{
public static void main (String[] args)
{
SpringApplication.run(UserInfoServerApplication.class, args);
}
}
4、在 application.yml 中添加如下配置
server:
port: 8770
spring:
application:
name: user-info-server
eureka:
client:
service-url:
defaultZone: http://zolmk:zolmk@eureka-node-a:8761/eureka/
register-with-eureka: true
fetch-registry: true
instance:
prefer-ip-address: true
- service-url 表示 Eureka Server 的地址
- prefer-ip-address=true 表示将自己的 ip 注册到 Eureka Server 上
- service-url Eureka Server 地址,以 Map 的形式存放
5、运行 application
二、注册需要认证的 Eureka Server
只需要改下 defaultZone 即可
defaultZone: user:password@hostname:port/eureka/
三、多网卡环境下的 IP 选择
1、忽略指定名称的网卡,例如:
spring:
cloud:
ignored-interfaces:
- docker0
- veth.*
eureka:
instance:
prefer-ip-address: true
ignored-interfaces 忽略 docker0 网卡 以及所有以 veth 开头的网卡。
2、使用正则表达式,指定使用的网络地址
示例:
spring:
cloud:
inetutils:
preferredNetworks:
- 192.168
- 10.0
eureka:
instance:
prefer-ip-address: true
3、只使用站点本地地址
示例:
spring:
cloud:
inetutils:
useOnlySiteLocalInterfaces: true
eureka:
instance:
prefer-ip-address: true
4、手动指定 IP 地址
在某些极端场景下,可以手动指定注册到 Eureka Server 的微服务 IP。示例:
eureka:
instance:
prefer-ip-address: true
ip-address: 127.0.0.1
四、Eureka 的健康检查
一般 Eureka Server 和 Eureka Client 之间通过心跳机制来判断 Eureka Client 是否可用,但这种方式并不能真正保证 Eureka Client 的可用性,我们可以通过启用 Eureka 的健康检查,这样,应用程序就会将自己的健康状态传播到 Eureka Server。开启方法如下
eureka:
client:
healthcheck:
enabled: true
注1:该配置仅能配置在 application.yml 中,如配置在 bootstrp.yml 中,会导致一些不良的副作用。
注2:使用该配置时,/pause 端点无法正常工作。