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

SpringCloud?Eureka服務(wù)治理之服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)

 更新時(shí)間:2022年08月01日 15:51:07   作者:共飲一杯無(wú)  
這篇文章主要介紹了SpringCloud?Eureka服務(wù)治理服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)概念詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

什么是Eureka

Netflix Eureka 是一款由 Netflix 開(kāi)源的基于 REST 服務(wù)的注冊(cè)中心,用于提供服務(wù)發(fā)現(xiàn)功能。Spring Cloud Eureka 是 Spring Cloud Netflix 微服務(wù)套件的一部分,基于 Netflix Eureka 進(jìn)行了二次封裝,主要負(fù)責(zé)完成微服務(wù)架構(gòu)中的服務(wù)治理功能。

Spring Cloud Eureka 是一個(gè)基于 REST 的服務(wù),并提供了基于 Java 的客戶端組件,能夠非常方便的將服務(wù)注冊(cè)到 Spring Cloud Eureka 中進(jìn)行統(tǒng)一管理。

Eureka核心概念服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)

服務(wù)注冊(cè)

  • 注冊(cè)中心

拆開(kāi)來(lái)看注冊(cè)和中心。注冊(cè)比如用戶注冊(cè),就是將自己的信息注冊(cè)在某個(gè)平臺(tái)上。中心可以理解成一個(gè)統(tǒng)一管理信息的平臺(tái)。所以注冊(cè)中心顧名思義是統(tǒng)一管理所有注冊(cè)信息的平臺(tái)。

  • 服務(wù)注冊(cè)

指的是服務(wù)在啟動(dòng)時(shí)將自身的信息注冊(cè)到注冊(cè)中心中,方便信息進(jìn)行統(tǒng)一管理。服務(wù)注冊(cè)是客戶端向注冊(cè)中心提交信息的動(dòng)作。

服務(wù)發(fā)現(xiàn)

  • 服務(wù)發(fā)現(xiàn)

指的是從注冊(cè)中心獲取對(duì)應(yīng)服務(wù)的信息,是客戶端向注冊(cè)中心拉取pull信息的動(dòng)作。

Eureka實(shí)戰(zhàn)

  • Eureka 的架構(gòu)主要分為 Eureka Server 和 Eureka Client 兩部分,Eureka Client 又分為 Applicaton Service 和 Application Client,Applicaton Service 就是服務(wù)提供者,Application Client 就是服務(wù)消費(fèi)者。
  • Eureka Client 會(huì)向 Eureka Server 發(fā)送請(qǐng)求,進(jìn)行注冊(cè),并將自己的一些信息發(fā)送給 Eureka Server。
  • 注冊(cè)成功后,每隔一定的時(shí)間,Eureka Client 會(huì)向 Eureka Server 發(fā)送心跳來(lái)續(xù)約服務(wù),也就是匯報(bào)健康狀態(tài)。 如果客戶端長(zhǎng)時(shí)間沒(méi)有續(xù)約,那么 Eureka Server 將在 90 秒(默認(rèn))內(nèi)從服務(wù)器注冊(cè)表中刪除客戶端的信息。
  • Eureka Client 還會(huì)定期從 Eureka Server 拉取注冊(cè)表信息,然后通過(guò)Ribbon 組件根據(jù)負(fù)載均衡算法得到一個(gè)目標(biāo),并發(fā)起遠(yuǎn)程調(diào)用。
  • 應(yīng)用正常停止時(shí)也會(huì)通知 Eureka Server 移除相關(guān)信息,信息成功移除后,其他客戶端會(huì)更新服務(wù)的信息,這樣就不會(huì)調(diào)用已經(jīng)下線的服務(wù)了,當(dāng)然這個(gè)會(huì)有延遲,有可能會(huì)調(diào)用到已經(jīng)失效的服務(wù),所以在客戶端會(huì)開(kāi)啟失敗重試功能來(lái)避免這個(gè)問(wèn)題。
  • Eureka Server 會(huì)有多個(gè)節(jié)點(diǎn)組成一個(gè)集群,保證高可用。Eureka Server 沒(méi)有集成其他第三方存儲(chǔ),而是存儲(chǔ)在內(nèi)存中,內(nèi)部維護(hù)一個(gè)注冊(cè)表的概念。
  • 所以 Eureka Server 之間會(huì)將注冊(cè)信息復(fù)制到集群中的 Eureka Server 的所有節(jié)點(diǎn)。 這樣數(shù)據(jù)才是共享狀態(tài),任何的 Eureka Client 都可以在任何一個(gè) Eureka Server 節(jié)點(diǎn)查找注冊(cè)表信息。

Eureka服務(wù)端單節(jié)點(diǎn)構(gòu)建

打開(kāi)start.spring.io/ 或者阿里云的快速start start.aliyun.com/bootstrap.h… ,開(kāi)始構(gòu)建對(duì)應(yīng)的服務(wù)端項(xiàng)目。推薦使用阿里云的快速start,因?yàn)樵L問(wèn)速度更快些。

自動(dòng)生成完成后,在resource目錄下,新建application.yml文件替換原來(lái)的application.properties。內(nèi)容如下:

#應(yīng)用名稱(chēng)
spring:
  application:
    name: eureka-server
server:
  port: 8001
eureka:
  client:
    # 是否將自己實(shí)例注冊(cè)到Eureka Server中
    register-with-eureka: false
    # 是否應(yīng)從Eureka Server獲取Eureka注冊(cè)表信息
    fetch-registry: false

在SpringBoot的啟動(dòng)類(lèi)上添加@EnableEurekaServer 注解,表示是Eureka 服務(wù)端。 上述配置完成后,一個(gè)單節(jié)點(diǎn)的Eureka服務(wù)端就配置完成了,啟動(dòng)效果如下:

訪問(wèn)http://localhost:8761/ 可以進(jìn)入eureka控制臺(tái)。

目前還沒(méi)有任何一個(gè)服務(wù)注冊(cè)到 Eureka 中,不過(guò)從上圖中,我們還是可以看到關(guān)于 Eureka 服務(wù)器內(nèi)存、CPU 、IP等的相關(guān)信息。

EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE。

圖中紅色警告翻譯為:緊急!Eureka已經(jīng)不能確認(rèn)這些已經(jīng)啟動(dòng)的實(shí)例是否可用,由于最近的續(xù)訂次數(shù)小于續(xù)訂閾值(續(xù)訂期望值),為了安全起見(jiàn)(實(shí)例可用),當(dāng)前這些實(shí)例不會(huì)刪除。 這是因?yàn)镋ureka進(jìn)入自我保護(hù)模式(SELF PRESERVATION MODE)。

Eureka服務(wù)端集群構(gòu)建

單個(gè) Eureka 服務(wù)可能存在的單點(diǎn)失效問(wèn)題,我們通常都需要構(gòu)建一個(gè) Eureka 服務(wù)器集群來(lái)確保注冊(cè)中心本身的可用性。與傳統(tǒng)的集群構(gòu)建方式不同,如果我們把 Eureka 也視為一個(gè)服務(wù),也就是說(shuō) Eureka服務(wù)自身也能注冊(cè)到其他 Eureka 服務(wù)上,從而實(shí)現(xiàn)相互注冊(cè),并構(gòu)成一個(gè)集群。 同樣可以通過(guò)單節(jié)點(diǎn)構(gòu)建步驟構(gòu)建兩個(gè)Eureka Server服務(wù)A和B。對(duì)應(yīng)的yml配置如下:

server: 
  port: 8761 
eureka: 
  instance: 
    hostname: eurekaA 
  client: 
    serviceUrl:
	   defaultZone: http:// eurekaB:8762/eureka/ 
server: 
  port: 8762 
eureka: 
  instance: 
    hostname: eurekaB 
  client: 
    serviceUrl:
	   defaultZone: http://eurekaA:8761/eureka/ 

**eureka.instance.hostname **是Eureka 實(shí)例管理類(lèi)配置項(xiàng) ,用于指定當(dāng)前 Eureka 服務(wù)的主機(jī)名稱(chēng)。 需要在本機(jī)的hosts文件中添加以下信息:

127.0.0.1 eurekaA 
127.0.0.1 eurekaB

  • 我們可以看到服務(wù)端A和B只調(diào)整了端口和地址的引用。構(gòu)建 Eureka 集群模式的關(guān)鍵點(diǎn)在于使用客戶端配置項(xiàng) eureka.client.serviceUrl.defaultZone 用于指向集群中的其他 Eureka 服務(wù)器。
  • 所以 Eureka 集群的構(gòu)建方式實(shí)際上就是將自己作為服務(wù)并向其他注冊(cè)中心注冊(cè)自己,這樣就形成了一組互相注冊(cè)的服務(wù)注冊(cè)中心以實(shí)現(xiàn)服務(wù)列表的同步。
  • 這個(gè)場(chǎng)景下 register-with-eureka(是否將自己實(shí)例注冊(cè)到Eureka Server中) 和 fetch-registry(是否應(yīng)從Eureka Server獲取Eureka注冊(cè)表信息)配置項(xiàng)應(yīng)該都使用其默認(rèn)的 true 值,我們不需要對(duì)其進(jìn)行顯式的設(shè)置。
  • 如果你嘗試使用本機(jī)搭建集群環(huán)境,顯然 eureka.instance.hostname 配置項(xiàng)中的 eureka1 和 eureka2 是無(wú)法訪問(wèn)的,所以需要在本機(jī)hosts 文件中添加以下信息。
  • 現(xiàn)在啟動(dòng)這兩個(gè) Eureka 服務(wù),然后分別打開(kāi) http://127.0.0.1:8761/ 和 http://127.0.0.1:8762/ 端點(diǎn)可以看到各自的服務(wù)注冊(cè)效果。

Eureka客戶端構(gòu)建

客戶端引入的pom坐標(biāo)有差異,需要引入客戶端坐標(biāo):

<dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> 
</dependency> 

在啟動(dòng)類(lèi)上需要加@EnableDiscoveryClient注解表示是Eureka客戶端。

@EnableDiscoveryClient
@SpringBootApplication
public class EurekaClientProviderApplication {
	public static void main(String[] args) {
		SpringApplication.run(EurekaClientProviderApplication.class, args);
	}
}

yml配置如下:

spring: 
  application: 
	name: eureka-client  
server: 
  port: 8081 
eureka: 
  client: 
    serviceUrl: 
    #指定eureka服務(wù)端地址,如果是集群則通過(guò)逗號(hào)分隔
	  defaultZone: http://localhost:8761/eureka/ 

配置完成后可以在eureka控制臺(tái)查看到相關(guān)注冊(cè)信息。

以上就是SpringCloud Eureka服務(wù)治理服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于SpringCloud Eureka服務(wù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 學(xué)習(xí)C語(yǔ)言對(duì)后期java有幫助嗎

    學(xué)習(xí)C語(yǔ)言對(duì)后期java有幫助嗎

    在本篇文章里小編給大家整理的是一篇關(guān)于學(xué)習(xí)C語(yǔ)言對(duì)后期java有幫助嗎的基礎(chǔ)文章,有興趣的朋友們可以參考下。
    2020-11-11
  • SpringBoot整合ES解析搜索返回字段問(wèn)題

    SpringBoot整合ES解析搜索返回字段問(wèn)題

    這篇文章主要介紹了SpringBoot整合ES解析搜索返回字段問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 基于EasyExcel實(shí)現(xiàn)百萬(wàn)級(jí)數(shù)據(jù)導(dǎo)入導(dǎo)出詳解

    基于EasyExcel實(shí)現(xiàn)百萬(wàn)級(jí)數(shù)據(jù)導(dǎo)入導(dǎo)出詳解

    大數(shù)據(jù)的導(dǎo)入和導(dǎo)出,相信大家在日常的開(kāi)發(fā)、面試中都會(huì)遇到。本文將為大家詳細(xì)介紹一下如何利用EasyExcel實(shí)現(xiàn)百萬(wàn)級(jí)數(shù)據(jù)導(dǎo)入導(dǎo)出,需要的可以參考一下
    2023-01-01
  • jboss( WildFly)上運(yùn)行 springboot程序的步驟詳解

    jboss( WildFly)上運(yùn)行 springboot程序的步驟詳解

    這篇文章主要介紹了jboss( WildFly)上運(yùn)行 springboot程序的步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Java Collections類(lèi)操作集合詳解

    Java Collections類(lèi)操作集合詳解

    這篇文章主要介紹了Java Collections類(lèi)操作集合詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • java子類(lèi)調(diào)用父類(lèi)的方法中包含子類(lèi)重寫(xiě)的實(shí)例方法

    java子類(lèi)調(diào)用父類(lèi)的方法中包含子類(lèi)重寫(xiě)的實(shí)例方法

    在本篇文章里小編給大家整理了關(guān)于java子類(lèi)調(diào)用父類(lèi)的方法中包含子類(lèi)重寫(xiě)的實(shí)例方法以及相關(guān)知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。
    2019-09-09
  • Java基本語(yǔ)法筆記(菜鳥(niǎo)必看篇)

    Java基本語(yǔ)法筆記(菜鳥(niǎo)必看篇)

    下面小編就為大家?guī)?lái)一篇Java基本語(yǔ)法筆記(菜鳥(niǎo)必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • JAVA實(shí)現(xiàn)異步調(diào)用實(shí)例代碼

    JAVA實(shí)現(xiàn)異步調(diào)用實(shí)例代碼

    在java平臺(tái),實(shí)現(xiàn)異步調(diào)用的角色主要三種角色:調(diào)用者、取貨憑證、真實(shí)數(shù)據(jù)。本篇文章給大家介紹java實(shí)現(xiàn)異步調(diào)用實(shí)例代碼,需要的朋友可以參考下
    2015-09-09
  • SpringBoot環(huán)境Druid數(shù)據(jù)源使用及特點(diǎn)

    SpringBoot環(huán)境Druid數(shù)據(jù)源使用及特點(diǎn)

    Druid 是目前比較流行的高性能的,分布式列存儲(chǔ)的OLAP框架(具體來(lái)說(shuō)是MOLAP)。本文給大家分享SpringBoot環(huán)境Druid數(shù)據(jù)源使用及特點(diǎn)介紹,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • SpringBoot設(shè)置默認(rèn)主頁(yè)的方法步驟

    SpringBoot設(shè)置默認(rèn)主頁(yè)的方法步驟

    這篇文章主要介紹了SpringBoot設(shè)置默認(rèn)主頁(yè)的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評(píng)論