eureka配置_F版本SpringCloud 5—Eureka集群和自我保护机制
前言
上篇文章中,通過代碼搭建了Eureka注冊中心和客戶端,是Eureka的簡單應(yīng)用,在本文中將會講解更多關(guān)于Eureka服務(wù)端的應(yīng)用以及原理。
Eureka 自我保護(hù)機(jī)制
進(jìn)入自我保護(hù)機(jī)制的標(biāo)志【重點(diǎn)】
在使用Eureka的過程中,有時(shí)候會在Eureka服務(wù)端的頁面上看到如下的內(nèi)容:
在監(jiān)控頁面上會看到一行紅字兒,這些紅字兒什么意思呢?代表著Eureka注冊中心進(jìn)入了自我保護(hù)機(jī)制。
什么是自我保護(hù)機(jī)制【重點(diǎn)】
默認(rèn)情況下,如果Eureka Server在一定時(shí)間內(nèi)沒有接受到服務(wù)實(shí)例的心跳,Eureka將會注銷該實(shí)例(默認(rèn)90秒).但是當(dāng)網(wǎng)絡(luò)分區(qū)發(fā)生故障時(shí),微服務(wù)客戶端和Eureka Server 無法正常通信。以上行為可能變得特別危險(xiǎn)了,因?yàn)槲⒎?wù)本身是健康的,此時(shí)不能注銷該服務(wù)實(shí)例。
Eureka通過自我保護(hù)機(jī)制來解決這個(gè)問題,當(dāng)Eureka Server在短時(shí)間丟失過多的服務(wù)實(shí)例(可能發(fā)生了網(wǎng)絡(luò)分區(qū)的故障),那么Eureka Server進(jìn)入自我保護(hù)模式,一旦進(jìn)入此模式,Eureka Server將會保護(hù)服務(wù)注冊表中的信息,不再刪除服務(wù)注冊表中的數(shù)據(jù)(也就是不再注銷任何的服務(wù)實(shí)例),當(dāng)網(wǎng)絡(luò)故障恢復(fù)后,Eureka Server會自動退出自我保護(hù)模式。
綜上,自我保護(hù)模式是一種應(yīng)對網(wǎng)絡(luò)故障的安全保護(hù)措施,它的架構(gòu)哲學(xué)是寧可同時(shí)保留所有的微服務(wù),也不盲目注銷任何健康的微服務(wù),使用自我保護(hù)模式可以讓Eureka,更加健壯,穩(wěn)定。
一句話:大面積出現(xiàn)客戶端失聯(lián)的時(shí)候,Eureka 注冊中心進(jìn)入自我保護(hù)模式,不注銷任何實(shí)例自我保護(hù)機(jī)制的配置
在Eureka Server中配置關(guān)閉自我保護(hù)機(jī)制
#關(guān)閉自我保護(hù)機(jī)制 默認(rèn)開啟 eureka.server.enable-self-preservation=false如果想及時(shí)剔除失效的eureka服務(wù)除了關(guān)閉自我保護(hù)機(jī)制外,可以調(diào)低eureka的心跳值
eureka-server服務(wù)端 配置文件中我們添加如下配置#關(guān)閉保護(hù)機(jī)制,以確保注冊中心將不可用的實(shí)例正確剔除 eureka.server.enable-self-preservation=false #(代表是5秒,單位是毫秒,清理失效服務(wù)的間隔 ) eureka.server.eviction-interval-timer-in-ms=5000客戶端 配置文件中我們添加如下配置# 心跳檢測檢測與續(xù)約時(shí)間 # 測試時(shí)將值設(shè)置設(shè)置小些,保證服務(wù)關(guān)閉后注冊中心能及時(shí)踢出服務(wù) # 配置說明 # lease-renewal-interval-in-seconds 每間隔10s,向服務(wù)端發(fā)送一次心跳,證明自己依然”存活“ # lease-expiration-duration-in-seconds 告訴服務(wù)端,如果我20s之內(nèi)沒有給你發(fā)心跳,就代表我“死”了,將我踢出掉。 eureka.instance.lease-renewal-interval-in-seconds=10 eureka.instance.lease-expiration-duration-in-seconds=20注冊中心高可用「注冊中心集群」
注冊中心集群 防止單點(diǎn)故障
Eureka可以通過運(yùn)行多個(gè)實(shí)例并互相注冊實(shí)現(xiàn)高可用部署,Eureka Server實(shí)例會彼此同步信息。
創(chuàng)建并配置Eureka集群
Tips:代碼在前上篇教程的基礎(chǔ)上開發(fā),源碼地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials
1.創(chuàng)建第二個(gè)Eureka服務(wù)端 eureka-server-8800
2.修改pom文件
3.創(chuàng)建并修改啟動類
package com.lby;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;/*** @author luxiaoyang* @create 2020-03-30-20:36*/ @EnableEurekaServer @SpringBootApplication public class EurekaServer8800 {public static void main(String[] args) {SpringApplication.run(EurekaServer8800.class,args);} }4.寫配置文件
5.修改注冊中心eureka-server-8801的配置文件
注冊中心之間的基本邏輯是:互相注冊此時(shí)我們就擁有了一個(gè)Eureka注冊中心的集群
6.修改所有客戶端的配置,客戶端需要向 注冊中心集群注冊 所以需要配置所有注冊中心的地址
演示注冊中心集群的效果
1.啟動所有的注冊中心和客戶端
2.查看Eureka注冊中心管理頁面
查看注冊中心 8800 的管理頁面,可以看到客戶端可以正常注冊
查看注冊中心 8801 的管理頁面,可以看到客戶端也可以正常注冊
3.關(guān)閉一個(gè)注冊中心8800,注冊中心8801不受任何影響,整個(gè)微服務(wù)的集群也不受任何影響,客戶端可以正常注冊
總結(jié)
以上就是Eureka注冊中心高可用和自我保護(hù)機(jī)制的相關(guān)內(nèi)容。
源碼地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials恭喜你完成了本章的學(xué)習(xí),為你鼓掌!如果本文對你有幫助,請幫忙點(diǎn)贊,評論,轉(zhuǎn)發(fā),這對作者很重要,謝謝。
要掌握SpringCloud更多的用法,請持續(xù)關(guān)注本系列教程。
求關(guān)注,求點(diǎn)贊,求轉(zhuǎn)發(fā)
總結(jié)
以上是生活随笔為你收集整理的eureka配置_F版本SpringCloud 5—Eureka集群和自我保护机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php gmssl,关于GmSSL
- 下一篇: js变量提升_一道JS变量提升题