這篇文章將為大家詳細講解有關(guān)如何分析Eureka集群和自我保護機制,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
創(chuàng)新互聯(lián)建站成立與2013年,先為新會等服務建站,新會等地企業(yè),進行企業(yè)商務咨詢服務。為新會企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
在使用Eureka的過程中,有時候會在Eureka服務端的頁面上看到如下的內(nèi)容:
在監(jiān)控頁面上會看到一行紅字兒,這些紅字兒什么意思呢?代表著Eureka注冊中心進入了自我保護機制。
默認情況下,如果Eureka Server在一定時間內(nèi)沒有接受到服務實例的心跳,Eureka將會注銷該實例(默認90秒).但是當網(wǎng)絡分區(qū)發(fā)生故障時,微服務客戶端和Eureka Server 無法正常通信。以上行為可能變得特別危險了,因為微服務本身是健康的,此時不能注銷該服務實例。
Eureka通過自我保護機制來解決這個問題,當Eureka Server在短時間丟失過多的服務實例(可能發(fā)生了網(wǎng)絡分區(qū)的故障),那么Eureka Server進入自我保護模式,一旦進入此模式,Eureka Server將會保護服務注冊表中的信息,不再刪除服務注冊表中的數(shù)據(jù)(也就是不再注銷任何的服務實例),當網(wǎng)絡故障恢復后,Eureka Server會自動退出自我保護模式。
綜上,自我保護模式是一種應對網(wǎng)絡故障的安全保護措施,它的架構(gòu)哲學是寧可同時保留所有的微服務,也不盲目注銷任何健康的微服務,使用自我保護模式可以讓Eureka,更加健壯,穩(wěn)定。
一句話:大面積出現(xiàn)客戶端失聯(lián)的時候,Eureka 注冊中心進入自我保護模式,不注銷任何實例
在Eureka Server中配置關(guān)閉自我保護機制
#關(guān)閉自我保護機制 默認開啟
eureka.server.enable-self-preservation=false
如果想及時剔除失效的eureka服務除了關(guān)閉自我保護機制外,可以調(diào)低eureka的心跳值
eureka-server服務端
配置文件中我們添加如下配置
#關(guān)閉保護機制,以確保注冊中心將不可用的實例正確剔除
eureka.server.enable-self-preservation=false
#(代表是5秒,單位是毫秒,清理失效服務的間隔 )
eureka.server.eviction-interval-timer-in-ms=5000
客戶端
配置文件中我們添加如下配置
# 心跳檢測檢測與續(xù)約時間
# 測試時將值設(shè)置設(shè)置小些,保證服務關(guān)閉后注冊中心能及時踢出服務
# 配置說明
# lease-renewal-interval-in-seconds 每間隔10s,向服務端發(fā)送一次心跳,證明自己依然”存活“
# lease-expiration-duration-in-seconds 告訴服務端,如果我20s之內(nèi)沒有給你發(fā)心跳,就代表我“死”了,將我踢出掉。
eureka.instance.lease-renewal-interval-in-seconds=10
eureka.instance.lease-expiration-duration-in-seconds=20
注冊中心集群 防止單點故障
Eureka可以通過運行多個實例并互相注冊實現(xiàn)高可用部署,Eureka Server實例會彼此同步信息。
Tips:代碼在前上篇教程的基礎(chǔ)上開發(fā),源碼地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials
1.創(chuàng)建第二個Eureka服務端 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的配置文件
注冊中心之間的基本邏輯是:互相注冊
此時我們就擁有了一個Eureka注冊中心的集群
6.修改所有客戶端的配置,客戶端需要向 注冊中心集群注冊 所以需要配置所有注冊中心的地址
1.啟動所有的注冊中心和客戶端
2.查看Eureka注冊中心管理頁面
查看注冊中心 8800 的管理頁面,可以看到客戶端可以正常注冊
查看注冊中心 8801 的管理頁面,可以看到客戶端也可以正常注冊
3.關(guān)閉一個注冊中心8800,注冊中心8801不受任何影響,整個微服務的集群也不受任何影響,客戶端可以正常注冊
關(guān)于如何分析Eureka集群和自我保護機制就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
當前名稱:如何分析Eureka集群和自我保護機制
當前鏈接:http://jinyejixie.com/article26/ggggcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、定制網(wǎng)站、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)