【原創內容,轉載、引用請注明出處】
1. 配置項解析
1.1 通用配置
# 應用名稱,將會顯示在Eureka界面的應用名稱列
spring.application.name=config-service
# 應用端口,Eureka服務端默認為:8761
server.port=3333
1.2 eureka.server前綴的配置項
# 是否允許開啟自我保護模式,缺省:true
# 當Eureka服務器在短時間內丟失過多客戶端時,自我保護模式可使服務端不再刪除失去連接的客戶端
eureka.server.enable-self-preservation = false
# Peer節點更新間隔,單位:毫秒
eureka.server.peer-eureka-nodes-update-interval-ms =
# Eureka服務器清理無效節點的時間間隔,單位:毫秒,缺省:60000,即60秒
eureka.server.eviction-interval-timer-in-ms = 60000
1.3 eureka.instance前綴的配置項
# 服務名,默認取 spring.application.name 配置值,如果沒有則為 unknown
eureka.instance.appname = eureka-client
# 實例ID
eureka.instance.instance-id = eureka-client-instance1
# 應用實例主機名
eureka.instance.hostname = localhost
# 客戶端在注冊時使用自己的IP而不是主機名,缺省:false
eureka.instance.prefer-ip-address = false
# 應用實例IP
eureka.instance.ip-address = 127.0.0.1
# 服務失效時間,失效的服務將被剔除。單位:秒,默認:90
eureka.instance.lease-expiration-duration-in-seconds = 90
# 服務續約(心跳)頻率,單位:秒,缺省30
eureka.instance.lease-renewal-interval-in-seconds = 30
# 狀態頁面的URL,相對路徑,默認使用 HTTP 訪問,如需使用 HTTPS則要使用絕對路徑配置,缺省:/info
eureka.instance.status-page-url-path = /info
# 健康檢查頁面的URL,相對路徑,默認使用 HTTP 訪問,如需使用 HTTPS則要使用絕對路徑配置,缺省:/health
eureka.instance.health-check-url-path = /health
1.4 eureka.client前綴
# Eureka服務器的地址,類型為HashMap,缺省的Key為 defaultZone;缺省的Value為 http://localhost:8761/eureka
# 如果服務注冊中心為高可用集群時,多個注冊中心地址以逗號分隔。
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka
# 是否向注冊中心注冊自己,缺省:true
# 一般情況下,Eureka服務端是不需要再注冊自己的
eureka.client.register-with-eureka = true
# 是否從Eureka獲取注冊信息,缺省:true
# 一般情況下,Eureka服務端是不需要的
eureka.client.fetch-registry = true
# 客戶端拉取服務注冊信息間隔,單位:秒,缺省:30
eureka.client.registry-fetch-interval-seconds = 30
# 是否啟用客戶端健康檢查
eureka.client.health-check.enabled = true
#
eureka.client.eureka-service-url-poll-interval-seconds = 60
# 連接Eureka服務器的超時時間,單位:秒,缺省:5
eureka.client.eureka-server-connect-timeout-seconds = 5
# 從Eureka服務器讀取信息的超時時間,單位:秒,缺省:8
eureka.client.eureka-server-read-timeout-seconds = 8
# 獲取實例時是否只保留狀態為 UP 的實例,缺省:true
eureka.client.filter-only-up-instances = true
# Eureka服務端連接空閑時的關閉時間,單位:秒,缺省:30
eureka.client.eureka-connection-idle-timeout-seconds = 30
# 從Eureka客戶端到所有Eureka服務端的連接總數,缺省:200
eureka.client.eureka-server-total-connections = 200
# 從Eureka客戶端到每個Eureka服務主機的連接總數,缺省:50
eureka.client.eureka-server-total-connections-per-host = 50
2. 配置項說明
Eureka中有一些配置項,通過查看網上的資料可以大概知道其含義,然而如果沒有一個直觀的指導,並不能清晰地認識他們實際的作用效果。下面通過截圖對部分配置項加以解釋說明。
2.1 spring.application.name和eureka.instance.appname
同時配置時,eureka.instance.appname
優先級更高。
如果沒有配置eureka.instance.appname
,則使用spring.application.name
的值,如果連spring.application.name
都沒有配置,則取unknown。
該配置項對應Eureka界面下圖紅框的內容:
2.2 eureka.instance.instance-id
配置項eureka.instance.instance-id
的值決定了下圖右側紅框中的顯示內容:
如果沒有設置eureka.instance.instance-id
,那么顯示的值將是一個由Eureka自動判斷生成的編號:
2.3 eureka.instance.prefer-ip-address、eureka.instance.hostname、eureka.instance.ip-address
eureka.instance前綴的配置項中,這幾個配置項絕對燒腦,根據周立的博客,在eureka.instance.prefer-ip-address = true
時,實例優先使用eureka.instance.ip-address
的值進行注冊,如果沒有配置eureka.instance.ip-address
,則使用第一個非回環IP地址進行注冊。
此時,我們打開Eureka的界面,在實例上右鍵,復制鏈接地址;或將鼠標放在下圖右上方的鏈接上(不點擊),就可以獲取實例的地址,如下圖左下角,可見此時實例注冊的是IP:
而當eureka.instance.prefer-ip-address = false
時,同樣的方式可以查看實例注冊地址采用了主機名eureka.instance.hostname
的值:
3. 配置Bean源碼
最后,對應於本文出現的配置項,Eureka中定義的源碼類如下。
eureka.server前綴的配置項
org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean
eureka.instance前綴的配置項
org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean
eureka.client前綴的配置項
org.springframework.cloud.netflix.eureka.EurekaClientConfigBean
參考博文:
https://www.cnblogs.com/liaojie970/p/8807023.html