国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【微服務(wù)】Eureka注冊中心

這篇具有很好參考價值的文章主要介紹了【微服務(wù)】Eureka注冊中心。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前置導(dǎo)入

我們在前文的案例中,我們采取如下的方式發(fā)送http請求:
eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生
我們將user-service的ip地址和端口硬編碼在了代碼當(dāng)中,這樣的寫法是有一定問題的。我們在公司開發(fā)中,可能會面臨多個環(huán)境,開發(fā)環(huán)境、測試環(huán)境等等,每一次環(huán)境的變更可能服務(wù)的地址也會發(fā)生變化,使用硬編碼顯然是不明智的選擇。

假如我們的服務(wù)提供者user-service部署了多個實例形成一個集群,如圖:
eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生
顯然在這種情況下,我們的硬編碼也是不明智的。

既然不能使用硬編碼,我們不由得思考以下的問題:

  • order-service在發(fā)起遠(yuǎn)程調(diào)用的時候,該如何得知user-service實例的ip地址和端口?
  • 有多個user-service實例地址,order-service調(diào)用時該如何選擇?
  • order-service如何得知某個user-service實例是否依然健康,是不是已經(jīng)宕機?

Eureka的結(jié)構(gòu)和作用

以上的問題都可以使用注冊中心Eureke解決。

在Eureka架構(gòu)中,微服務(wù)角色有兩類:

  • EurekaServer:服務(wù)端,注冊中心
    • 記錄服務(wù)信息
    • 心跳監(jiān)控
  • EurekaClient:客戶端
    • Provider:服務(wù)提供者,例如案例中的user-service
      • 注冊自己的信息到EurekaServer
      • 每隔30s向EurekaServer發(fā)送心跳
    • consumer:服務(wù)消費者,例如案例中的order-service
      • 根據(jù)服務(wù)名稱從EurekaServer拉取服務(wù)列表
      • 基于服務(wù)列表做負(fù)載均衡,選中一個微服務(wù)后發(fā)起遠(yuǎn)程調(diào)用

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

回答之前的各個問題。

問題1:order-service如何得知user-service實例地址?

獲取地址信息的流程如下:

  • user-service服務(wù)實例啟動后,將自己的信息注冊到eureka-server(Eureka服務(wù)端)。這個叫服務(wù)注冊
  • eureka-server保存服務(wù)名稱到服務(wù)實例地址列表的映射關(guān)系
  • order-service根據(jù)服務(wù)名稱,拉取實例地址列表。這個叫服務(wù)發(fā)現(xiàn)或服務(wù)拉取

問題2:order-service如何從多個user-service實例中選擇具體的實例?

  • order-service從實例列表中利用負(fù)載均衡算法選中一個實例地址
  • 向該實例地址發(fā)起遠(yuǎn)程調(diào)用

問題3:order-service如何得知某個user-service實例是否依然健康,是不是已經(jīng)宕機?

  • user-service會每隔一段時間(默認(rèn)30秒)向eureka-server發(fā)起請求,報告自己狀態(tài),稱為心跳
  • 當(dāng)超過一定時間沒有發(fā)送心跳時,eureka-server會認(rèn)為微服務(wù)實例故障,將該實例從服務(wù)列表中剔除
  • order-service拉取服務(wù)時,就能將故障實例排除了
  • 例如8083現(xiàn)在宕機了:
    eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

注意:一個微服務(wù),既可以是服務(wù)提供者,又可以是服務(wù)消費者,因此eureka將服務(wù)注冊、服務(wù)發(fā)現(xiàn)等功能統(tǒng)一封裝到了eureka-client端

接下來我們進行三個方面的實踐去體驗Eureka注冊中心:
eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

搭建eureka-server

首先注冊中心服務(wù)端:eureka-server,這必須是一個獨立的微服務(wù)

創(chuàng)建eureka-server服務(wù)

在cloud-demo父工程下,創(chuàng)建一個子模塊:

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

填寫模塊信息:

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

然后填寫服務(wù)信息:

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

引入eureka依賴

引入SpringCloud為eureka提供的starter依賴:

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

編寫啟動類

給eureka-server服務(wù)編寫一個啟動類,一定要添加一個@EnableEurekaServer注解,開啟eureka的注冊中心功能

package cn.itcast.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

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

編寫配置文件

編寫一個application.yml文件,內(nèi)容如下:

server:
  port: 10086
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url: 
      defaultZone: http://127.0.0.1:10086/eureka

這里的name和地址是為了做服務(wù)的注冊而準(zhǔn)備的

name配置的是微服務(wù)名稱,因為每個服務(wù)注冊的時候都要帶上名字。
defaultZone配置的是微服務(wù)的地址

euraka自身就是一個微服務(wù),他自己也要進行注冊。這是為了以后Eureka集群之間進行通信用的。比方說我啟動了三個Eureka,那么三個Eureka之間會相互做注冊,這樣他們就可以做數(shù)據(jù)交流了。這個時候的defaultZone會配置集群的多個地址,多個之間使用逗號隔開。

eureka.client.service-url
指定eureka服務(wù)端的注冊地址 (Eureka Server的分區(qū)地址)
這個是客戶端使用的,告訴客戶端服務(wù)的地址(讓其知道去哪注冊啊)
eureka.client.service-url 是個map,可以指定多個,有個默認(rèn)的defaultZone
eureka.client.service-url.defaultZone=http://local.register.com:${server.port}/eureka/
defaultZone是key, http://local.register.com:${server.port}/eureka/是value

這里的defaultZone中配置的地址有一個/eureka后綴,但是我們訪問的時候是沒有這個后綴的,這是因為在eureka server的實現(xiàn)中存在一個web請求過濾器,其url模式就是【/eureka/*】。

啟動服務(wù)

啟動微服務(wù),然后在瀏覽器訪問:http://127.0.0.1:10086

看到下面結(jié)果應(yīng)該是成功了:

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

我們進來之后重點關(guān)注一個地方:
eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

這里顯示的是注冊到Eureka的實例

注意:這里的地址前半部分顯示的是主機名,你可以把它理解為哦localhost

總結(jié)

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

服務(wù)注冊

下面,我們將user-service注冊到eureka-server中去。

引入依賴

在user-service的pom文件中,引入下面的eureka-client依賴:

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

配置文件

在user-service中,修改application.yml文件,添加服務(wù)名稱、eureka地址:

spring:
  application:
    name: userservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

啟動多個user-service實例

為了演示一個服務(wù)有多個實例的場景,我們添加一個SpringBoot的啟動配置,再啟動一個user-service。

首先,復(fù)制原來的user-service啟動配置:

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

然后,在彈出的窗口中,填寫信息:

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

現(xiàn)在,SpringBoot窗口會出現(xiàn)兩個user-service啟動配置:

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

不過,第一個是8081端口,第二個是8082端口。

啟動兩個user-service實例:

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

查看eureka-server管理頁面:

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

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

下面,我們將order-service的邏輯修改:向eureka-server拉取user-service的信息,實現(xiàn)服務(wù)發(fā)現(xiàn)。

引入依賴

之前說過,服務(wù)發(fā)現(xiàn)、服務(wù)注冊統(tǒng)一都封裝在eureka-client依賴,因此這一步與服務(wù)注冊時一致。

在order-service的pom文件中,引入下面的eureka-client依賴:

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

配置文件

服務(wù)發(fā)現(xiàn)也需要知道eureka地址,因此第二步與服務(wù)注冊一致,都是配置eureka信息:

在order-service中,修改application.yml文件,添加服務(wù)名稱、eureka地址:

spring:
  application:
    name: orderservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

服務(wù)拉取和負(fù)載均衡

最后,我們要去eureka-server中拉取user-service服務(wù)的實例列表,并且實現(xiàn)負(fù)載均衡。

不過這些動作不用我們?nèi)プ?,只需要添加一些注解即可?/p>

在order-service的OrderApplication中,給RestTemplate這個Bean添加一個@LoadBalanced注解:

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

修改order-service服務(wù)中的cn.itcast.order.service包下的OrderService類中的queryOrderById方法。修改訪問的url路徑,用服務(wù)名代替ip、端口

eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

spring會自動幫助我們從eureka-server端,根據(jù)userservice這個服務(wù)名稱,獲取實例列表,而后完成負(fù)載均衡。

我們使用postman測試一下:
eureka注冊地址,# SpringCloud,eureka,微服務(wù),spring cloud,云原生

注意:使用Service啟動服務(wù)集群的時候,即使顯示已經(jīng)啟動好了,還是會存在一些延遲。文章來源地址http://www.zghlxwxcb.cn/news/detail-791586.html

到了這里,關(guān)于【微服務(wù)】Eureka注冊中心的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【微服務(wù) SpringCloud】實用篇 · Eureka注冊中心

    【微服務(wù) SpringCloud】實用篇 · Eureka注冊中心

    微服務(wù)(3) 假如我們的服務(wù)提供者 user-service部署了多個實例(不同實例,端口號不一致) ,如圖: 大家思考幾個問題: 我們剛才的編程,是寫死在程序里的,ip和端口都是寫死的, 這種硬編碼的方式,之后改變ip和端口代碼不就沒法用了? order-service在發(fā)起遠(yuǎn)程調(diào)用的時候

    2024年02月08日
    瀏覽(27)
  • SpringCloud微服務(wù)技術(shù)棧的注冊中心Eureka

    在微服務(wù)架構(gòu)中,服務(wù)的數(shù)量龐大,而且每個服務(wù)可能會有多個實例。此時,需要一個中心化的地方來管理和維護各個服務(wù)的相關(guān)信息,這就是微服務(wù)治理中很重要的一環(huán):服務(wù)注冊與發(fā)現(xiàn)。其中,服務(wù)注冊是指將提供服務(wù)的應(yīng)用實例注冊到注冊中心,而服務(wù)發(fā)現(xiàn)則是指從注

    2023年04月09日
    瀏覽(18)
  • SpringCloud微服務(wù) 【實用篇】| Eureka注冊中心、Ribbon負(fù)載均衡

    SpringCloud微服務(wù) 【實用篇】| Eureka注冊中心、Ribbon負(fù)載均衡

    目錄 一:Eureka注冊中心 1. Eureka原理 2. 動手實踐 ①搭建EurekaServer ②服務(wù)注冊 ③服務(wù)發(fā)現(xiàn)? 二:Ribbon負(fù)載均衡 1. 負(fù)載均衡原理 2.?負(fù)載均衡策略 3. 懶加載 tips:前些天突然發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家,感興趣的同學(xué)可以

    2024年02月05日
    瀏覽(21)
  • # 從淺入深 學(xué)習(xí) SpringCloud 微服務(wù)架構(gòu)(三)注冊中心 Eureka(3)

    # 從淺入深 學(xué)習(xí) SpringCloud 微服務(wù)架構(gòu)(三)注冊中心 Eureka(3)

    段子手168 Eureka Server 可以通過運行多個實例并相互注冊的方式實現(xiàn)高可用部署, Eureka Server 實例會彼此增量地同步信息,從而確保所有節(jié)點數(shù)據(jù)一致。 事實上,節(jié)點之間相互注冊是 Eureka Server 的默認(rèn)行為。 1)修改 eureka_server 子工程(子模塊)中的 application.yml 文件 模擬兩個

    2024年04月26日
    瀏覽(23)
  • 微服務(wù)springcloud 02 創(chuàng)建項目中的三個service子系統(tǒng),springcloud中注冊中心Eureka介紹和把三個系統(tǒng)注冊到Eureka中

    微服務(wù)springcloud 02 創(chuàng)建項目中的三個service子系統(tǒng),springcloud中注冊中心Eureka介紹和把三個系統(tǒng)注冊到Eureka中

    item service項目 01.使用springboot創(chuàng)建項目 02.選擇依懶項 在這里插入代碼片 spring web 03.添加sp01-commons依賴 在pom.xml文件中 04.修改application.yml ItemServiceImpl 05.創(chuàng)建接口實現(xiàn)類和controller類 ItemController 注:Spring MVC接受參數(shù)的幾個注解,controller類中使用的參數(shù)注解 注解@GetMapping()=@

    2024年02月09日
    瀏覽(93)
  • 基于SpringCloud的微服務(wù)架構(gòu)學(xué)習(xí)筆記(2)注冊中心Eureka和負(fù)載均衡Ribbon

    基于SpringCloud的微服務(wù)架構(gòu)學(xué)習(xí)筆記(2)注冊中心Eureka和負(fù)載均衡Ribbon

    1.7.1 遠(yuǎn)程調(diào)用的問題 地址信息獲取 : 服務(wù)消費者 如何獲取 服務(wù)提供者 的 地址信息 (不能每次都寫死): URL:http://localhost:8081/user/\\\"+order.getUserId() 多選一 :如果有多個服務(wù)提供者,消費者如何進行選擇 監(jiān)測健康狀態(tài) :消費者如何獲知提供者的健康狀態(tài) 1.7.2 eureka原理 地址

    2024年02月13日
    瀏覽(19)
  • SpringCloud--Eureka注冊中心

    SpringCloud--Eureka注冊中心

    ? ? ? ? ? Spring Cloud 封裝了 Netflix 公司開發(fā)的 Eureka 模塊來實現(xiàn)服務(wù)注冊和發(fā)現(xiàn)。Eureka 采用了 C-S 的設(shè)計架構(gòu)。Eureka Server 作為服務(wù)注冊功能的服務(wù)器,它是服務(wù)注冊中心。而系統(tǒng)中的其他微服務(wù),使用 Eureka 的客戶端連接到 Eureka Server并維持心跳連接。這樣系統(tǒng)的維護人員就

    2024年01月17日
    瀏覽(25)
  • SpringCloud --- Eureka注冊中心

    SpringCloud --- Eureka注冊中心

    假如我們的服務(wù)提供者user-service部署了多個實例,如圖 思考幾個問題: order-service在發(fā)起遠(yuǎn)程調(diào)用的時候,該如何得知user-service實例的ip地址和端口? 有多個user-service實例地址,order-service調(diào)用時該如何選擇? order-service如何得知某個user-service實例是否依然健康,是不是已經(jīng)宕

    2023年04月24日
    瀏覽(12)
  • Spring Cloud Eureka Service Registry 服務(wù)注冊中心實踐

    作者:禪與計算機程序設(shè)計藝術(shù) 在分布式微服務(wù)架構(gòu)下,服務(wù)發(fā)現(xiàn)是保證應(yīng)用可用的關(guān)鍵組件之一。在Spring Cloud體系中,服務(wù)發(fā)現(xiàn)中心通過Netflix Eureka實現(xiàn)。 本文將介紹Spring Cloud Eureka服務(wù)注冊中心的機制、配置及使用方法,并通過實例對Eureka的功能及其局限性進行詳細(xì)闡述

    2024年02月11日
    瀏覽(228)
  • 【Spring Cloud】深入理解 Eureka 注冊中心的原理、服務(wù)的注冊與發(fā)現(xiàn)

    【Spring Cloud】深入理解 Eureka 注冊中心的原理、服務(wù)的注冊與發(fā)現(xiàn)

    在微服務(wù)架構(gòu)中,服務(wù)的注冊與發(fā)現(xiàn)是至關(guān)重要的一環(huán)。為了實現(xiàn)這一目標(biāo),Eureka 注冊中心應(yīng)運而生。在本篇文章中,我們將深入理解 Eureka 注冊中心的原理,以及探討服務(wù)的注冊與發(fā)現(xiàn)機制。 在微服務(wù)的協(xié)作中,服務(wù)之間的遠(yuǎn)程調(diào)用是常見的需求。然而,使用傳統(tǒng)的 Rest

    2024年02月08日
    瀏覽(85)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包