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

服務注冊中心 Eureka

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

服務注冊中心 Eureka

Spring Cloud Eureka 是 Netflix 公司開發(fā)的注冊發(fā)現(xiàn)組件,本身是一個基于 REST 的服務。提供注冊與發(fā)現(xiàn),同時還提供了負載均衡、故障轉移等能力。

Eureka 有 3 個角色

服務注冊中心 Eureka,SpringCloud,eureka,spring cloud,微服務

  • 服務中心(Eureka Server):服務器端。它提供服務的注冊和發(fā)現(xiàn)功能,即實現(xiàn)服務的治理。
  • 服務提供者(Service Provider):服務提供者。它將自身服務注冊到 服務中心,以便 服務消費者 能夠通過服務器提供的服務清單(服務注冊列表)來調用它。
  • 服務消費者(Service Consumer):服務消費者。它從 服務中心 獲取已注冊的服務列表,從而消費服務。

Eureka 是 AP 架構(可用性和分區(qū)容錯性),Zookeeper 是 CP 架構(一致性和分區(qū)容錯性)。Eueka 優(yōu)先保證服務的可用性,Zookeeper 在 Master 節(jié)點因為網(wǎng)絡故障與其他節(jié)點失去聯(lián)系時,剩余節(jié)點選取 leader 的時間太長,這就導致在選舉期間注冊服務癱瘓。

1. 搭建單機Eureka注冊中心

首先需要創(chuàng)建一個 spring-cloud 工程,刪除 src 目錄,然后在 pom.xml 文件中加入以下依賴:

<!-- 統(tǒng)一管理jar包版本 -->
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <spring-cloud.version>2021.0.0</spring-cloud.version>
    <spring-boot.version>2.6.3</spring-boot.version>
</properties>
<!-- 子模塊繼承之后,提供作用:鎖定版本,子modlue不用寫groupId和version -->
<dependencyManagement>
    <dependencies>
        <!--spring boot 2.6.3-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!--spring cloud 2021.0.0-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

創(chuàng)建 eureka-server-7001 模塊,然后在 pom.xml 文件中加入以下依賴:

<!--  服務注冊發(fā)現(xiàn)Eureka-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

寫 application.yaml 配置文件,具體如下:

server:
  port: 7001
eureka:
  instance:
    # eureka服務端的實例名字
    hostname: localhost
  client:
    # 是否將自己注冊到eureka server
    register-with-eureka: false
    # 是否從eureka server獲取注冊的服務信息
    fetch-registry: false
    # 設置與eureka server交互的地址
    service-url:
      defalutZone: http://${eureka.instance.hostname}:${server.port}/eureka/

最后在啟動類上加上 @EnableEurekaServer 注解即可

@EnableEurekaServer

啟動訪問 localhost:7001 即可訪問到 Eureka 注冊中心的界面。

2. 創(chuàng)建服務提供者與服務消費者

創(chuàng)建服務提供者 provider-8001服務消費者 consumer-80 模塊,然后在 pom.xml 文件中加入以下依賴:

<!--   引入Eureka 客戶端依賴     -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

服務提供者和消費者的依賴是一樣的,都是 eureka-client。

寫 application.yaml 配置文件,具體如下:

server:
  port: 8001
spring:
  application:
    name: cloud-provider-8001
eureka:
  client:
    # eureka服務地址
    service-url:
      defaultZone: http://localhost:7001/eureka/
server:
  port: 80
spring:
  application:
    name: cloud-consumer-80
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/

最后在啟動類上面加 @EnableEurekaClient 注解即可。

@EnableEurekaClient

先啟動 Eureka 注冊中心,然后在分別啟動服務提供者和服務消費者,即可在 Eureka 服務注冊中心看到相關信息。

3. Eureka 注冊中心界面說明

訪問上面我們搭建的注冊中心(localhost:7001),界面如下:

服務注冊中心 Eureka,SpringCloud,eureka,spring cloud,微服務

其中最重要的是中間服務信息的那一欄,實例的狀態(tài)有以下幾種:

  • UP:服務正常運行,特殊情況當進入自我保護模式,所有的服務依然是 UP 狀態(tài),所以需要做好熔斷重試等容錯機制應對災難性網(wǎng)絡出錯情況
  • OUT_OF_SERVICE:不再提供服務,其他的 Eureka Client 將調用不到該服務,一般有人為的調用接口設置的,如:強制下線。
  • UNKNOWN:未知狀態(tài)
  • STARTING:表示服務正在啟動中
  • DOWN:表示服務已經(jīng)宕機,無法繼續(xù)提供服務
4. 服務自保和服務剔除機制

服務自保機制(Service Self-Preservation Mechanism):是指 Eureka Server 中的一種機制,用于保護在 Eureka 注冊中心上注冊的微服務實例免受意外刪除的影響。當微服務實例在心跳超時時間內沒有發(fā)送心跳信號給 Eureka Server 時,Eureka Server 不會立即將其從服務注冊表中刪除,而是認為該實例可能處于網(wǎng)絡故障等臨時異常情況,會將其保留在注冊表中,提供一定的自我保護,防止誤刪健康的實例。這樣可以避免因網(wǎng)絡抖動、服務器負載或其他臨時問題導致服務實例被誤刪,從而提高服務的穩(wěn)定性和可用性。

服務剔除機制(Service Eviction Mechanism):與服務自保相對應,是指當服務實例連續(xù)長時間未發(fā)送心跳信號、或注冊中心發(fā)現(xiàn)某個服務實例心跳連續(xù)失敗的次數(shù)超過一定閾值時,Eureka Server 會將該服務實例從服務注冊表中剔除。通過服務剔除機制,可以排除不健康、異?;蚬收蠣顟B(tài)的服務實例,防止其他服務繼續(xù)調用故障的實例,減少錯誤的傳播范圍,提高系統(tǒng)的穩(wěn)定性。

Eureka 中的服務自保機制是為了保護健康、可能出現(xiàn)臨時異常的服務實例免受誤刪的影響,而服務剔除機制則是為了及時剔除不健康、長時間未發(fā)送心跳或心跳連續(xù)失敗的服務實例,保障整個服務治理系統(tǒng)的正常運行。這兩個機制的存在都是為了提高服務的可靠性和穩(wěn)定性。

服務自保是默認開啟的,可以使用以下配置來關閉,在 Eureka Server 的 application.yaml 配置文件中加入以下配置:

eureka:  
  server:
    # 參數(shù)來關閉保護機制,已確保注冊中心可以將不可用的實例正確剔除,默認為true
    enable-self-preservation: false
5. Actuator 微服務信息完善

SpringCloud 體系里的服務實體向 Eureka 注冊時,注冊名默認是 IP名:應用名:應用端口名。

我們可以通過 actuator 來修改完善注冊名,在服務提供者或消費者的 pom.xml 文件中加入以下配置:

<!-- actuator監(jiān)控信息完善 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

然后在 application.yaml 配置文件中加入以下配置:

eureka:
  instance:
    # 實例名稱
    instance-id: cloud-consumer01-80
6. 服務注冊發(fā)現(xiàn) Discovery

注冊進入 Eureka 里面的微服務,可以通過服務發(fā)現(xiàn)來獲取該服務的信息。

在服務提供者模塊controller類,具體如下:

@Slf4j
@RestController
@RequestMapping("/provider")
public class ProviderController {
    @Autowired
    private DiscoveryClient discoveryClient;
    
    @GetMapping("/discovery")
    public Object discovery() {
        // 獲取所有微服務信息
        List<String> services = discoveryClient.getServices();
        for (String service : services) {
            log.info("service:={}", service);
        }
        return this.discoveryClient;
    }

    /**
     * 供消費者調用
     */
    @GetMapping("/index")
    public String getMsg() {
        return "success";
    }
}

RestTemplate 是從 Spring3.0 開始支持的一個 HTTP 請求工具,它提供了常見的REST請求方案的模版,例如 GET 請求、POST 請求、PUT 請求、DELETE 請求以及一些通用的請求執(zhí)行方法 exchange() 以及 execute()。

在服務消費者模塊中添加配置類,具體如下:

@Configuration
public class CloudConfig {
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

最后在服務消費者模塊添加對應調用方法,具體如下:

@RestController
@RequestMapping("/consumer")
public class ConsumerController {
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/index")
    public String index() {
        // 遠程微服務調用地址: 微服務名稱
        String host = "http://cloud-provider-8001";
        // 具體URL
        String url = "/provider/index";
        // 發(fā)起遠程調用
        // getForObject: 返回響應體中數(shù)據(jù)轉化成的對象, 可以理解為json
        // getForEntity: 返回的是ResponseEntity的對象包含了一些重要的信息
        return restTemplate.getForObject(host + url, String.class);
    }
}

瀏覽器訪問:http://localhost:80/consumer/index 地址,即出現(xiàn)在服務提供者模塊中返回的 “success” 字符串。文章來源地址http://www.zghlxwxcb.cn/news/detail-666681.html

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

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

領支付寶紅包贊助服務器費用

相關文章

  • 【SpringCloud微服務--Eureka服務注冊中心】

    【SpringCloud微服務--Eureka服務注冊中心】

    gitee倉庫 內容:SpringCloud + SpringCloud alibaba 技術棧:Java8+maven+git,github+Nginx+RabbitMQ+SpringBoot2.0 微服務架構是一種架構模式,它提倡將單一應用程序劃分成一組小的服務,服務之間互相協(xié)調、互相配合,為用戶提供最終價值。每個服務運行在其獨立的 進程 中,服務與服務間采用

    2024年02月09日
    瀏覽(51)
  • SpringCloud之Eureka 服務注冊中心

    SpringCloud之Eureka 服務注冊中心

    5 Eureka 服務注冊中心 5.1什么是 Eureka Netflix在涉及Eureka時,遵循的就是API原則. Eureka是Netflix的有個子模塊,也是核心模塊之一。Eureka是基于REST的服務,用于定位服務,以實現(xiàn)云端中間件層服務發(fā)現(xiàn)和故障轉移,服務注冊與發(fā)現(xiàn)對于微服務來說是非常重要的,有了服務注冊與發(fā)

    2024年02月04日
    瀏覽(23)
  • 【spring cloud學習】3、Eureka Server注冊中心

    【spring cloud學習】3、Eureka Server注冊中心

    Eureka本身是Netflix開源的一款注冊中心產(chǎn)品,并且Spring Cloud提供了相應的集成封裝。選擇Eureka作為注冊中心實例來講解是出于以下原因: (1)Eureka在業(yè)界的應用十分廣泛,整個框架經(jīng)受住了Netflix嚴酷生產(chǎn)環(huán)境的考驗。 (2)除了Eureka注冊中心外,Netflix的其他服務治理功能也十

    2024年02月11日
    瀏覽(91)
  • Springcloud筆記(2)-Eureka服務注冊中心

    Springcloud筆記(2)-Eureka服務注冊中心

    Eureka作為一個微服務的治理中心,它是一個服務應用,可以接收其他服務的注冊,也可以發(fā)現(xiàn)和治理服務實例。 服務治理中心是微服務(分布式)架構中最基礎和最核心的功能組件,它主要對各個服務實例進行管理,包括 服務注冊和服務發(fā)現(xiàn) 等 本文參考:springcloud教程 --

    2024年02月05日
    瀏覽(57)
  • SpringCloud搭建Eureka服務注冊中心(六)

    SpringCloud搭建Eureka服務注冊中心(六)

    前面說過eureka是c/s模式的 ?server服務端就是服務注冊中心,其他的都是client客戶端,服務端用來管理所有服務,客戶端通過注冊中心,來調用具體的服務; 我們先來搭建下服務端,也就是服務注冊中心; project xmlns=\\\"http://maven.apache.org/POM/4.0.0\\\" xmlns:xsi=\\\"http://www.w3.org/2001/XMLSche

    2024年02月10日
    瀏覽(24)
  • 【微服務 SpringCloud】實用篇 · Eureka注冊中心

    【微服務 SpringCloud】實用篇 · Eureka注冊中心

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

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

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

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

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

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

    2024年02月05日
    瀏覽(21)
  • 客快物流大數(shù)據(jù)項目(一百一十三):注冊中心 Spring Cloud Eureka

    客快物流大數(shù)據(jù)項目(一百一十三):注冊中心 Spring Cloud Eureka

    文章目錄 注冊中心 Spring Cloud Eureka 一、Eureka 簡介 二、架構圖

    2023年04月25日
    瀏覽(91)
  • # 從淺入深 學習 SpringCloud 微服務架構(三)注冊中心 Eureka(3)

    # 從淺入深 學習 SpringCloud 微服務架構(三)注冊中心 Eureka(3)

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

    2024年04月26日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包