首先對(duì)Eureka注冊(cè)中心需要了解的是Eureka各個(gè)節(jié)點(diǎn)都是平等的,沒有ZK中角色的概念, 即使N-1個(gè)節(jié)點(diǎn)掛掉也不會(huì)影響其他節(jié)點(diǎn)的正常運(yùn)行。了解springcloud架構(gòu)可以加求求:三五三六二四七二五九
專業(yè)從事網(wǎng)站建設(shè)、成都網(wǎng)站制作,高端網(wǎng)站制作設(shè)計(jì),微信平臺(tái)小程序開發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠(chéng)服務(wù),采用H5場(chǎng)景定制+CSS3前端渲染技術(shù),成都響應(yīng)式網(wǎng)站建設(shè)公司,讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過(guò)程建立專項(xiàng)小組,與您實(shí)時(shí)在線互動(dòng),隨時(shí)提供解決方案,暢聊想法和感受。默認(rèn)情況下,如果Eureka Server在一定時(shí)間內(nèi)(默認(rèn)90秒)沒有接收到某個(gè)微服務(wù)實(shí)例的心跳,Eureka Server將會(huì)移除該實(shí)例。但是當(dāng)網(wǎng)絡(luò)分區(qū)故障發(fā)生時(shí),微服務(wù)與Eureka Server之間無(wú)法正常通信,而微服務(wù)本身是正常運(yùn)行的,此時(shí)不應(yīng)該移除這個(gè)微服務(wù),所以引入了自我保護(hù)機(jī)制。
自我保護(hù)模式正是一種針對(duì)網(wǎng)絡(luò)異常波動(dòng)的安全保護(hù)措施,使用自我保護(hù)模式能使Eureka集群更加的健壯、穩(wěn)定的運(yùn)行。
自我保護(hù)機(jī)制的工作機(jī)制是如果在15分鐘內(nèi)超過(guò)85%的客戶端節(jié)點(diǎn)都沒有正常的心跳,那么Eureka就認(rèn)為客戶端與注冊(cè)中心出現(xiàn)了網(wǎng)絡(luò)故障,Eureka Server自動(dòng)進(jìn)入自我保護(hù)機(jī)制,此時(shí)會(huì)出現(xiàn)以下幾種情況:
1、Eureka Server不再?gòu)淖?cè)列表中移除因?yàn)殚L(zhǎng)時(shí)間沒收到心跳而應(yīng)該過(guò)期的服務(wù)。
2、Eureka Server仍然能夠接受新服務(wù)的注冊(cè)和查詢請(qǐng)求,但是不會(huì)被同步到其它節(jié)點(diǎn)上,保證當(dāng)前節(jié)點(diǎn)依然可用。
3、當(dāng)網(wǎng)絡(luò)穩(wěn)定時(shí),當(dāng)前Eureka Server新的注冊(cè)信息會(huì)被同步到其它節(jié)點(diǎn)中。
因此Eureka Server可以很好的應(yīng)對(duì)因網(wǎng)絡(luò)故障導(dǎo)致部分節(jié)點(diǎn)失聯(lián)的情況,而不會(huì)像ZK那樣如果有一半不可用的情況會(huì)導(dǎo)致整個(gè)集群不可用而變成癱瘓。
自我保護(hù)開關(guān)
Eureka自我保護(hù)機(jī)制,通過(guò)配置 eureka.server.enable-self-preservation來(lái)true打開/false禁用自我保護(hù)機(jī)制,默認(rèn)打開狀態(tài),建議生產(chǎn)環(huán)境打開此配置。
開發(fā)環(huán)境配置
開發(fā)環(huán)境中如果要實(shí)現(xiàn)服務(wù)失效能自動(dòng)移除,只需要修改以下配置。
1、 注冊(cè)中心關(guān)閉自我保護(hù)機(jī)制,修改檢查失效服務(wù)的時(shí)間。
eureka: server: enable-self-preservation:false eviction-interval-timer-in-ms:3000
2、 微服務(wù)修改減短服務(wù)心跳的時(shí)間。
lease-expiration-duration-in-seconds:10 lease-renewal-interval-in-seconds:3
以上配置建議在生產(chǎn)環(huán)境使用默認(rèn)的時(shí)間配置。