1. Eureka 訪問認證:
此功能的實現步驟共分爲三部:① 設置訪問路徑;② 配置 security 屬性信息;③ 添加依賴;
① 設置訪問路徑:修改 properties.yml 文件,在正常的訪問路徑中加入 user:password@ ;
② 配置 security 屬性信息:在 properties.yml 文件中添加如下配置,name 和 password 的值可以自己設定;
security:
basic:
enabled: true
user:
name: user
password: 123456
③ 添加依賴
<!-- # eureka 頁面認證 ③/③:添加spring-boot-starter-security依賴(①:設置訪問路徑;②:配置security;) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
完成以上配置後,訪問 Eureka 時會彈出以下信息認證提示框,需要輸入相關的認證信息 (name 和 password 的值),確定後才能進行正常訪問:
2. 監控、管理生產環境模塊:
<!-- 監控、管理生產環境模塊 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
添加此依賴後在啓動服務時,會在控制檯輸出信息中增加如下一些信息:
以Eureka訪問地址+相關後綴可以在瀏覽器查看對應的監控信息:
健康況狀信息:
當前運行環境:
3. 健康檢查功能:
首先,該功能需要在 SpringCloud Netflix1.1 版本以上才能使用;
該功能的實現是基於上面的監控管理生產環境的,所以依然需要添加 spring-boot-starter-actuator 依賴;
實現該檢查功能需要在 properties.yml 中添加如下配置:
4. 調用 com.netflix.discovery.EurekaClient 接口的 getNextServerFromEureka(String virtualHostname, boolean secure) 方法,獲取服務提供者的 url 地址;
@GetMapping("/eureka-instance")
public String serviceUrl() {
InstanceInfo instance = eurekaClient.getNextServerFromEureka("MICROSERVICE-PROVIDER-USER", false);
String url = instance.getHomePageUrl();
System.out.println("獲取到的地址信息:" + url); // 獲取到的地址信息:http://192.168.43.119:7801/
return url;
}
5. 調用 org.springframework.cloud.client.discovery.DiscoveryClient 接口的 discoveryClient.getLocalServiceInstance() 方法,獲取服務提供者所提供服務的多個信息;
@GetMapping("/instance-info")
public ServiceInstance showInfo(){
ServiceInstance serviceInstance = discoveryClient.getLocalServiceInstance();
return serviceInstance;
}