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 端點無法正常工作。