最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringCloud中的Eureka注冊中心詳細解讀

 更新時間:2023年11月09日 09:03:35   作者:愛敲代碼的小楚  
這篇文章主要介紹了SpringCloud中的Eureka注冊中心詳細解讀,想要參與服務(wù)注冊發(fā)現(xiàn)的實例首先需要向Eureka服務(wù)器注冊信息,注冊在第一次心跳發(fā)生時提交,需要的朋友可以參考下

Eureka原理

概念:實現(xiàn)服務(wù)治理,即管理所有的服務(wù)信息和狀態(tài)。 eureka分為兩部分,Server端和Client端 Client端向Server端定時發(fā)送心跳包。 Server端根據(jù)Clinet端的心跳包,來維護一個服務(wù)列表(判斷服務(wù)是否在線)。

  • client功能
    1. 注冊:每個微服務(wù)啟動時,將自己的網(wǎng)絡(luò)地址等信息注冊到注冊中心,注冊中心會存儲(內(nèi)存中)這些信息。
    2. 獲取服務(wù)注冊表:服務(wù)消費者從注冊中心,查詢服務(wù)提供者的網(wǎng)絡(luò)地址,并使用該地址調(diào)用服務(wù)提供者,為了避免每次都查注冊表信息,所以client會定時去server拉取注冊表信息到緩存到client本地。
    3. 心跳:各個微服務(wù)與注冊中心通過某種機制(心跳)通信,若注冊中心長時間和服務(wù)間沒有通信,就會注銷該實例。
    4. 調(diào)用:實際的服務(wù)調(diào)用,通過注冊表,解析服務(wù)名和具體地址的對應(yīng)關(guān)系,找到具體服務(wù)的地址,進行實際調(diào)用。
  • server注冊中心功能
    1. 服務(wù)注冊表:記錄各個微服務(wù)信息,例如服務(wù)名稱,ip,端口等。注冊表提供 查詢API(查詢可用的微服務(wù)實例)和管理API(用于服務(wù)的注冊和注銷)。
    2. 服務(wù)注冊與發(fā)現(xiàn):注冊:將微服務(wù)信息注冊到注冊中心。發(fā)現(xiàn):查詢可用微服務(wù)列表及其網(wǎng)絡(luò)地址。
    3. 服務(wù)檢查:定時檢測已注冊的服務(wù),如發(fā)現(xiàn)某實例長時間無法訪問,就從注冊表中移除。

1.服務(wù)注冊

想要參與服務(wù)注冊發(fā)現(xiàn)的實例首先需要向Eureka服務(wù)器注冊信息 注冊在第一次心跳發(fā)生時提交

  • Renew:續(xù)租,心跳。Eureka客戶需要每30秒發(fā)送一次心跳來續(xù)租
  • Fetch Registry:Eureka客戶端拉取注冊表信息,并緩存在本地。可以30秒更新一次。
  • Cancel:Eureka客戶端在關(guān)閉時向Eureka服務(wù)器發(fā)送取消請求。這將從服務(wù)器的實例注冊表中刪除實例,從而有效地將實例從通信量中取出。

客戶端配置選項

#續(xù)約發(fā)送間隔默認30秒,心跳間隔
eureka.instance.lease-renewal-interval-in-seconds=5
#表示eureka client間隔多久去拉取服務(wù)注冊信息,默認為30秒,對于api-gateway,如果要迅速獲取服務(wù)注冊狀態(tài),可以縮小該值,比如5秒
eureka.client.registry-fetch-interval-seconds=5
# 續(xù)約到期時間(默認90秒)
eureka.instance.lease-expiration-duration-in-seconds=60

服務(wù)器端配置選項

#關(guān)閉自我保護模式
eureka.server.enable-self-preservation=false
#失效服務(wù)間隔
eureka.server.eviction-interval-timer-in-ms=3000

2.Eureka高可用

高可用:可以通過運行多個Eureka server實例并相互注冊的方式實現(xiàn)。Server節(jié)點之間會彼此增量地同步信息,從而確保節(jié)點中數(shù)據(jù)一致。

寫一個地址也行(但是server得互相注冊),EurekaServer會自動同步,但為了避免極端情況,還是寫多個。 集群中各個server會從其他server同步注冊表信息。

#client配置
eureka: 
  client:
    #設(shè)置服務(wù)注冊中心的URL
    service-url:                      
      defaultZone: http://root:root@eureka-7801:7801/eureka/,http://root:root@eureka-7802:7802/eureka/

3.自我保護機制

  • 默認情況下,Eureka Server在一定時間內(nèi)(90s),沒有接收到某個微服務(wù)心跳,就會將該服務(wù)注銷。但是當(dāng)網(wǎng)絡(luò)出現(xiàn)問題、故障,微服務(wù)之間無法通信,就不應(yīng)該直接注銷了。所以Eureka Server的自我保護機制,是在短時間內(nèi)出現(xiàn)大量客戶端丟失,就不會從注冊表中注銷。
  • 思想:寧可保留健康的和不健康的,也不盲目注銷任何健康的服務(wù)。
  • 關(guān)閉自我保護
eureka:
  server: 
    enable-self-preservation: false

4.Eureka 健康檢查

server和client通過心跳保持 服務(wù)列表,而只有狀態(tài)為UP的服務(wù)才能被訪問??磂ureka界面中的status。 比如心跳一直正常,服務(wù)一直UP,但是此服務(wù)DB連不上了,無法正常提供服務(wù)(有的時候業(yè)務(wù)出現(xiàn)問題catch住異常,也可以手動傳輸DOWN讓服務(wù)下線)。 此時,我們需要將 微服務(wù)的健康狀態(tài)也同步到server。只需要啟動eureka的健康檢查就行。這樣微服務(wù)就會將自己的健康狀態(tài)同步到eureka。配置如下即可。 開啟手動控制 在client端配置:將自己真正的健康狀態(tài)傳播到server。

eureka:
  client:
    healthcheck:
      enabled: true

Client端配置Actuator

	<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
	</dependency>

改變健康狀態(tài)的Service

@Service
public class HealthStatusService implements HealthIndicator{

	private Boolean status = true;

	public void setStatus(Boolean status) {
		this.status  = status;
	}

	@Override
	public Health health() {
		// TODO Auto-generated method stub
		if(status)
		return new Health.Builder().up().build();
		return new Health.Builder().down().build();
	}

	public String getStatus() {
		// TODO Auto-generated method stub
		return this.status.toString();
	}

5.Eureka監(jiān)聽事件

  • EurekaInstanceCanceledEvent 服務(wù)下線事件
  • EurekaInstanceRegisteredEvent 服務(wù)注冊事件
  • EurekaInstanceRenewedEvent 服務(wù)續(xù)約事件
  • EurekaRegistryAvailableEvent 注冊中心可用事件
  • EurekaServerStartedEvent 注冊中心啟動
import org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceCanceledEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;

@Component
public class CustomEvent {
	
	@EventListener
	public void listen(EurekaInstanceCanceledEvent e) {
		System.out.println(e.getServerId()+"下線事件");
	}
}

將Eureka Client停止后打?。?
api-listen-order:30.136.133.9:port下線事件

6.Eureka缺陷

集群之間的同步復(fù)制是通過HTTP的方式進行,基于網(wǎng)絡(luò)的不可靠性,集群中的Eureka Server間的注冊表信息難免存在不同步的時間節(jié)點,不滿足CAP中的C(數(shù)據(jù)一致性)。

到此這篇關(guān)于SpringCloud中的Eureka注冊中心詳細解讀的文章就介紹到這了,更多相關(guān)SpringCloud的Eureka注冊中心內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何使用Spring的@FeignClient注解實現(xiàn)通信功能

    詳解如何使用Spring的@FeignClient注解實現(xiàn)通信功能

    SpringBoot是一個非常流行的Java框架,它提供了一系列工具來使這種交互無縫且高效,在這些工具中,@FeignClient注解因其易用性和強大的功能而脫穎而出, 在這篇文章中,我們將探討如何使用Spring的@FeignClient注解進行客戶端-服務(wù)器通信,需要的朋友可以參考下
    2023-11-11
  • Java經(jīng)典設(shè)計模式之責(zé)任鏈模式原理與用法詳解

    Java經(jīng)典設(shè)計模式之責(zé)任鏈模式原理與用法詳解

    這篇文章主要介紹了Java經(jīng)典設(shè)計模式之責(zé)任鏈模式,簡單說明了責(zé)任鏈模式的概念、原理,并結(jié)合實例形式分析了java實現(xiàn)責(zé)任鏈模式的具體用法與相關(guān)注意事項,需要的朋友可以參考下
    2017-08-08
  • Java實現(xiàn)MapStruct對象轉(zhuǎn)換的示例代碼

    Java實現(xiàn)MapStruct對象轉(zhuǎn)換的示例代碼

    本文主要介紹了MapStruct在Java中的對象轉(zhuǎn)換使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • log4j2 項目日志組件的實例代碼

    log4j2 項目日志組件的實例代碼

    下面小編就為大家分享一篇log4j2 項目日志組件的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • SpringBoot后端上傳文件類型檢測方式

    SpringBoot后端上傳文件類型檢測方式

    這篇文章主要介紹了SpringBoot后端上傳文件類型檢測方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 一文帶你深入了解Java8 Stream流式編程

    一文帶你深入了解Java8 Stream流式編程

    在實際項目當(dāng)中,若能熟練使用Java8 的Stream流特性進行開發(fā),就比較容易寫出簡潔優(yōu)雅的代碼。本文主要就是基于實際項目常用的Stream Api流式處理總結(jié),希望對大家有所幫助
    2023-04-04
  • Java動態(tài)追蹤技術(shù)探究之從JSP到Arthas

    Java動態(tài)追蹤技術(shù)探究之從JSP到Arthas

    這篇文章主要介紹了Java動態(tài)追蹤技術(shù)探究之從JSP到Arthas,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下
    2019-06-06
  • spring+apollo動態(tài)獲取yaml格式的配置方式

    spring+apollo動態(tài)獲取yaml格式的配置方式

    這篇文章主要介紹了spring+apollo動態(tài)獲取yaml格式的配置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • springboot接入微信app支付的方法

    springboot接入微信app支付的方法

    本文使用springboot集成微信支付服務(wù),包含微信統(tǒng)一支付訂單接口,以及支付回調(diào)接口等,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • SpringBoot實現(xiàn)動態(tài)配置及項目打包部署上線功能

    SpringBoot實現(xiàn)動態(tài)配置及項目打包部署上線功能

    本文講解的是如何使用Spring動態(tài)配置文件,實現(xiàn)不同環(huán)境不同配置,靈活切換配置文件;以及講述了如何使用?Maven?打包,然后上傳至Linux服務(wù)器進行部署,對SpringBoot打包部署上線過程感興趣的朋友一起看看吧
    2022-10-10

最新評論

丹凤县| 太仆寺旗| 万宁市| 庆阳市| 新宁县| 商南县| 房山区| 鄄城县| 贺兰县| 乐安县| 六枝特区| 五大连池市| 依兰县| 荔波县| 南汇区| 扬中市| 萝北县| 赣州市| 郓城县| 永丰县| 德阳市| 湖口县| 玉山县| 洞头县| 定边县| 廉江市| 巩义市| SHOW| 靖西县| 苍梧县| 平阴县| 石楼县| 宜城市| 乌拉特中旗| 南宫市| 石河子市| 铁岭县| 昭平县| 利辛县| 彰化市| 岚皋县|