轉載自 https://blog.csdn.net/u011499747/article/details/77410997
Eureka服務端配置
添加spring-boot-starter-security
更改POM文件:
-
<dependency>
-
<groupId>org.springframework.boot
</groupId>
-
<artifactId>spring-boot-starter-security
</artifactId>
-
</dependency>
設置用戶名密碼
更改application.properties:
-
security.user.password=dubby
-
security.user.
name=dubby
重啟,打開http://localhost:1111/,如果需要你輸入密碼,說明安全模塊生效了,輸入你設置的用戶名和密碼,可以進入就可以了。
Eureka客戶端配置
更改application.properties:
eureka.client.serviceUrl.defaultZone=http://dubby:dubby@localhost:1111/eureka/
注意格式是
eureka.client.serviceUrl.defaultZone=http://${userName}:${password}@localhost:1111/eureka/
至此,Eureka的基本安全配置結束了。
==========================================================
一下部分轉載自 https://segmentfault.com/a/1190000008378268#articleHeader5
eureka.client.registry-fetch-interval-seconds
表示eureka client間隔多久去拉取服務注冊信息,默認為30秒,對於api-gateway,如果要迅速獲取服務注冊狀態,可以縮小該值,比如5秒
eureka.instance.lease-expiration-duration-in-seconds
leaseExpirationDurationInSeconds,表示eureka server至上一次收到client的心跳之后,等待下一次心跳的超時時間,在這個時間內若沒收到下一次心跳,則將移除該instance。
-
默認為90秒
-
如果該值太大,則很可能將流量轉發過去的時候,該instance已經不存活了。
-
如果該值設置太小了,則instance則很可能因為臨時的網絡抖動而被摘除掉。
-
該值至少應該大於leaseRenewalIntervalInSeconds
eureka.instance.lease-renewal-interval-in-seconds
leaseRenewalIntervalInSeconds,表示eureka client發送心跳給server端的頻率。如果在leaseExpirationDurationInSeconds后,server端沒有收到client的心跳,則將摘除該instance。除此之外,如果該instance實現了HealthCheckCallback,並決定讓自己unavailable的話,則該instance也不會接收到流量。
-
默認30秒
eureka.server.enable-self-preservation
是否開啟自我保護模式,默認為true。
默認情況下,如果Eureka Server在一定時間內沒有接收到某個微服務實例的心跳,Eureka Server將會注銷該實例(默認90秒)。但是當網絡分區故障發生時,微服務與Eureka Server之間無法正常通信,以上行為可能變得非常危險了——因為微服務本身其實是健康的,此時本不應該注銷這個微服務。
Eureka通過“自我保護模式”來解決這個問題——當Eureka Server節點在短時間內丟失過多客戶端時(可能發生了網絡分區故障),那么這個節點就會進入自我保護模式。一旦進入該模式,Eureka Server就會保護服務注冊表中的信息,不再刪除服務注冊表中的數據(也就是不會注銷任何微服務)。當網絡故障恢復后,該Eureka Server節點會自動退出自我保護模式。
綜上,自我保護模式是一種應對網絡異常的安全保護措施。它的架構哲學是寧可同時保留所有微服務(健康的微服務和不健康的微服務都會保留),也不盲目注銷任何健康的微服務。使用自我保護模式,可以讓Eureka集群更加的健壯、穩定。
eureka.server.eviction-interval-timer-in-ms
eureka server清理無效節點的時間間隔,默認60000毫秒,即60秒.
測試環境參考配置
eureka server
-
eureka:
-
server:
-
enable-
self-preservation:
false
# 關閉自我保護模式(缺省為打開)
-
eviction-interval-timer-
in-ms:
5000
# 續期時間,即掃描失效服務的間隔時間(缺省為60*1000ms)
eureka client
-
eureka:
-
instance:
-
lease-renewal-interval-
in-seconds:
5
# 心跳時間,即服務續約間隔時間(缺省為30s)
-
lease-expiration-duration-
in-seconds:
10
# 發呆時間,即服務續約到期時間(缺省為90s)
-
client:
-
healthcheck:
-
enabled:
true
# 開啟健康檢查(依賴spring-boot-starter-actuator)
zuul
-
eureka:
-
client:
-
registry-fetch-interval-seconds:
5
# 默認為30秒
原文地址:https://blog.csdn.net/u012240455/article/details/86630546