亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java Eureka探究細(xì)枝末節(jié)

 更新時間:2022年09月02日 10:19:37   作者:悠然予夏  
Eureka是Netflix開發(fā)的服務(wù)發(fā)現(xiàn)框架,本身是一個基于REST的服務(wù),主要用于定位運行在AWS域中的中間層服務(wù),以達(dá)到負(fù)載均衡和中間層服務(wù)故障轉(zhuǎn)移的目的

1、Eureka元數(shù)據(jù)詳解

Eureka的元數(shù)據(jù)有兩種:標(biāo)準(zhǔn)元數(shù)據(jù)和自定義元數(shù)據(jù)。

標(biāo)準(zhǔn)元數(shù)據(jù):主機(jī)名、IP地址、端口號等信息,這些信息都會被發(fā)布在服務(wù)注冊表中,用于服務(wù)之間的調(diào)用。

自定義元數(shù)據(jù):可以使用eureka.instance.metadata-map配置,符合KEY/VALUE的存儲格式。這 些元數(shù)據(jù)可以在遠(yuǎn)程客戶端中訪問。

類似于

eureka:

        instance:
                prefer-ip-address: true
                metadata-map:
                # 自定義元數(shù)據(jù)(kv自定義)
                        cluster: cl1
                        region: rn1

我們可以在程序中可以使用DiscoveryClient 獲取指定微服務(wù)的所有元數(shù)據(jù)信息

import com.lagou.edu.AutoDeliverApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.List;
@SpringBootTest(classes = {AutoDeliverApplication.class})
@RunWith(SpringJUnit4ClassRunner.class)
public class AutoDeliverApplicationTest {
    @Autowired
    private DiscoveryClient discoveryClient;
    @Test
    public void testInstanceMetadata() {
        // 從EurekaServer獲取指定微服務(wù)實例
        List<ServiceInstance> instances = discoveryClient.getInstances("lagou-service-resume");
        // 循環(huán)打印每個微服務(wù)實例的元數(shù)據(jù)信息
        for (int i = 0; i < instances.size(); i++) {
            ServiceInstance serviceInstance = instances.get(i);
            System.out.println(serviceInstance);
        }
    }
}

元數(shù)據(jù)查看如下

2、Eureka客戶端詳解

服務(wù)提供者(也是Eureka客戶端)要向EurekaServer注冊服務(wù),并完成服務(wù)續(xù)約等工作

服務(wù)注冊詳解(服務(wù)提供者)

  1. 當(dāng)我們導(dǎo)入了eureka-client依賴坐標(biāo),配置Eureka服務(wù)注冊中心地址
  2. 服務(wù)在啟動時會向注冊中心發(fā)起注冊請求,攜帶服務(wù)元數(shù)據(jù)信息
  3. Eureka注冊中心會把服務(wù)的信息保存在Map中

服務(wù)續(xù)約詳解(服務(wù)提供者)

服務(wù)每隔30秒會向注冊中心續(xù)約(心跳)一次(也稱為報活),如果沒有續(xù)約,租約在90秒后到期,然后服務(wù)會被失效。每隔30秒的續(xù)約操作我們稱之為心跳檢測。

往往不需要我們調(diào)整這兩個配置

# 向Eureka服務(wù)中心集群注冊服務(wù)
eureka:
        instance:
# 租約續(xù)約間隔時間,默認(rèn)30秒
                lease-renewal-interval-in-seconds: 30
# 租約到期,服務(wù)時效時間,默認(rèn)值90秒,服務(wù)超過90秒沒有發(fā)生心跳,EurekaServer會將服務(wù)從列表移除
                lease-expiration-duration-in-seconds: 90

獲取服務(wù)列表詳解(服務(wù)消費者)

每隔30秒服務(wù)會從注冊中心中拉取一份服務(wù)列表,這個時間可以通過配置修改。往往不需要我們調(diào)整。

# 向Eureka服務(wù)中心集群注冊服務(wù)
eureka:
        client:# 每隔多久拉取一次服務(wù)列表
                registry-fetch-interval-seconds: 30

  1. 服務(wù)消費者啟動時,從 EurekaServer服務(wù)列表獲取只讀備份,緩存到本地
  2. 每隔30秒,會重新獲取并更新數(shù)據(jù)
  3. 每隔30秒的時間可以通過配置eureka.client.registry-fetch-interval-seconds修改

3、Eureka服務(wù)端詳解

服務(wù)下線

  • 當(dāng)服務(wù)正常關(guān)閉操作時,會發(fā)送服務(wù)下線的REST請求給EurekaServer。
  • 服務(wù)中心接受到請求后,將該服務(wù)置為下線狀態(tài)

失效剔除

Eureka Server會定時(間隔值是eureka.server.eviction-interval-timer-in-ms,默認(rèn)60s)進(jìn)行檢查,如果發(fā)現(xiàn)實例在在一定時間(此值由客戶端設(shè)置的eureka.instance.lease-expiration-duration-in-seconds定義,默認(rèn)值為90s)內(nèi)沒有收到心跳,則會注銷此實例。

自我保護(hù)

服務(wù)提供者 —> 注冊中心

定期的續(xù)約(服務(wù)提供者和注冊中心通信),假如服務(wù)提供者和注冊中心之間的網(wǎng)絡(luò)有點問題,不代表服務(wù)提供者不可用,不代表服務(wù)消費者無法訪問服務(wù)提供者。如果在15分鐘內(nèi)超過85%的客戶端節(jié)點都沒有正常的心跳,那么Eureka就認(rèn)為客戶端與注冊中心出現(xiàn)了網(wǎng)絡(luò)故障,Eureka Server自動進(jìn)入自我保護(hù)機(jī)制。

為什么會有自我保護(hù)機(jī)制?

默認(rèn)情況下,如果Eureka Server在一定時間內(nèi)(默認(rèn)90秒)沒有接收到某個微服務(wù)實例的心跳,Eureka Server將會移除該實例。但是當(dāng)網(wǎng)絡(luò)分區(qū)故障發(fā)?時,微服務(wù)與Eureka Server之間?法正常通信,而微服務(wù)本身是正常運行的,此時不應(yīng)該移除這個微服務(wù),所以引入了自我保護(hù)機(jī)制。

服務(wù)中心頁面會顯示如下提示信息

當(dāng)處于自我保護(hù)模式時

  • 不會剔除任何服務(wù)實例(可能是服務(wù)提供者和EurekaServer之間網(wǎng)絡(luò)問題),保證了大多數(shù)服務(wù)依然可用
  • Eureka Server仍然能夠接受新服務(wù)的注冊和查詢請求,但是不會被同步到其它節(jié)點上,保證當(dāng)前節(jié)點依然可用,當(dāng)網(wǎng)絡(luò)穩(wěn)定時,當(dāng)前Eureka Server新的注冊信息會被同步到其它節(jié)點中。
  • 在Eureka Server工程中通過eureka.server.enable-self-preservation配置可用關(guān)停自我保護(hù),默認(rèn)值是打開

eureka:
        server:
                enable-self-preservation: false # 關(guān)閉自我保護(hù)模式(缺省為打開)

經(jīng)驗:建議生產(chǎn)環(huán)境打開自我保護(hù)機(jī)制

到此這篇關(guān)于Java Eureka探究細(xì)枝末節(jié)的文章就介紹到這了,更多相關(guān)Java Eureka內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實現(xiàn)對視頻進(jìn)行截圖的方法【附ffmpeg下載】

    Java實現(xiàn)對視頻進(jìn)行截圖的方法【附ffmpeg下載】

    這篇文章主要介紹了Java實現(xiàn)對視頻進(jìn)行截圖的方法,結(jié)合實例形式分析了Java使用ffmpeg針對視頻進(jìn)行截圖的相關(guān)操作技巧,并附帶ffmpeg.exe文件供讀者下載使用,需要的朋友可以參考下
    2018-01-01
  • Spring?零基礎(chǔ)入門WebFlux框架體系

    Spring?零基礎(chǔ)入門WebFlux框架體系

    Spring5發(fā)布有兩年了,隨Spring5一起發(fā)布了一個和Spring?WebMvc同級的Spring?WebFlux。這是一個支持反應(yīng)式編程模型的新框架體系。反應(yīng)式模型區(qū)別于傳統(tǒng)的MVC最大的不同是異步的、事件驅(qū)動的、非阻塞的,這使得應(yīng)用程序的并發(fā)性能會大大提高,單位時間能夠處理更多的請求
    2022-07-07
  • 詳解Java?token主流框架之JWT

    詳解Java?token主流框架之JWT

    JWT(JSON?Web?Token)是一種基于JSON格式的輕量級的、用于身份認(rèn)證的開放標(biāo)準(zhǔn),它通過在用戶和服務(wù)器之間傳遞一個安全的、可靠的、獨立的JSON對象來進(jìn)行身份驗證和授權(quán),本文將詳細(xì)給大家介紹Java?token主流框架之JWT,需要的朋友可以參考下
    2023-05-05
  • Java集合框架之Collection接口詳解

    Java集合框架之Collection接口詳解

    這篇文章主要為大家詳細(xì)介紹了Java集合框架之Collection接口,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Java判斷一個時間是否在當(dāng)前時間區(qū)間代碼示例

    Java判斷一個時間是否在當(dāng)前時間區(qū)間代碼示例

    這篇文章主要給大家介紹了關(guān)于使用Java判斷一個時間是否在當(dāng)前時間區(qū)間的相關(guān)資料,在日常開發(fā)中我們經(jīng)常會涉及到時間的大小比較或者是判斷某個時間是否在某個時間段內(nèi),需要的朋友可以參考下
    2023-07-07
  • Java中try、catch的使用方法

    Java中try、catch的使用方法

    這篇文章主要介紹了Java中try、catch的使用方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • springboot中restful風(fēng)格請求的使用方法示例

    springboot中restful風(fēng)格請求的使用方法示例

    RESTful是一種web軟件風(fēng)格,它不是標(biāo)準(zhǔn)也不是協(xié)議,它不一定要采用,只是一種風(fēng)格,它倡導(dǎo)的是一個資源定位(url)及資源操作的風(fēng)格,下面這篇文章主要給大家介紹了關(guān)于springboot中restful風(fēng)格請求的使用方法,需要的朋友可以參考下
    2023-02-02
  • SpringMVC如何正確接收時間的請求示例分析

    SpringMVC如何正確接收時間的請求示例分析

    這篇文章主要為大家介紹了SpringMVC如何正確接收時間的請求示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Java中equals方法使用及重寫練習(xí)

    Java中equals方法使用及重寫練習(xí)

    equals是在object類中的方法,在object中equals是用來看看兩個參數(shù)是否引用的是同一個對象,下面這篇文章主要給大家介紹了關(guān)于Java中equals方法使用及重寫練習(xí)的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Java實現(xiàn)MD5加密的方法

    Java實現(xiàn)MD5加密的方法

    這篇文章主要介紹了Java實現(xiàn)MD5加密的方法,實例分析了基于java實現(xiàn)md5加密的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07

最新評論