首頁 Java java教程 深入解析springCloud的Eureka實踐

深入解析springCloud的Eureka實踐

Jul 20, 2018 am 11:30 AM

1.初識springcloud

微服務是一種架構方式,最終肯定需要技術架構去實作。

微服務的實現方式很多,但是最火的莫過於Spring Cloud了

Spring最擅長的就是集成,把世界上最好的框架拿過來,集成到自己的項目中。

SpringCloud也是一樣,它將現在非常流行的一些技術整合到一起,實現了諸如:配置管理,服務發現,智能路由,負載平衡,熔斷器,控制總線,集群狀態等等功能。其主要涉及的元件包括:

  • Eureka:註冊中心

  • Zuul:服務閘道
  • Ribbon:負載平衡

  • Feign:服務呼叫

  • Hystix:熔斷器

今天主要認識springcloud的註冊中心Eureka

這裡舉個生活中的實例:

在叫車出現以前,人們出門叫車只能叫計程車。有些私家車想做出租卻沒有資格,稱為黑車。而很多人想要約車,但是無奈計程車太少,不方便。私家車很多卻不敢攔,而且滿街的車,誰知道哪個才是願意載人的。一個想要,一個願意給,就是缺少引子,缺乏管理。

此時滴滴這樣的叫車平台出現了,所有想載客的私家車全部到滴滴註冊,記錄你的車型(服務類型),身份資訊(聯絡方式)。這樣提供服務的私家車,在滴滴那裡都能找到,一目了然。

此時要叫車的人,只需要打開APP,輸入你的目的地,選擇車型(服務類型),滴滴自動安排一個符合需求的車到你面前,為你服務.

回到springcloud的Eureka上來,Eureka就好比是滴滴,負責管理、記錄服務提供者的信息。服務呼叫者不需要自己找服務,而是把自己的需求告訴Eureka,然後Eureka會把符合你需求的服務告訴你。同時,服務提供者與Eureka之間透過「心跳」機制進行監控,當某個服務提供者出現問題,Eureka自然會把它從服務清單中剔除。

這實現了服務的自動註冊、發現、狀態監控。

深入解析springCloud的Eureka實踐

Eureka:就是服務註冊中心(可以是叢集),對外暴露自己的地址

提供者:啟動後向Eureka註冊自己資訊(地址,提供什麼服務)

消費者:向Eureka訂閱服務,Eureka會將對應服務的所有提供者地址清單發送給消費者,並且定期更新

心跳(續約) :提供者定期透過http方式向Eureka刷新自己的狀態

實務:

#Eureka註冊中心結構圖:

深入解析springCloud的Eureka實踐

##完善pom.xml檔,新增依賴

以下是pom檔主要部分

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.0.3.RELEASE</version>
   <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
   <java.version>1.8</java.version>
   <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
</properties>

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

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
   </dependency>
</dependencies>

<dependencyManagement>
   <dependencies>
      <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>

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>
登入後複製

編輯啟動類別

@SpringBootApplication
@EnableEurekaServer // 声明这个应用是一个EurekaServer
public class SpringcloudEurekaServerApplication {

   public static void main(String[] args) {

      SpringApplication.run(SpringcloudEurekaServerApplication.class, args);
   }
}
登入後複製

#編寫application.yml配置

server:
  port: 8081 # 端口
spring:
  application:
    name: eureka-server # 应用名称,会在Eureka中显示
eureka:
  client:
    register-with-eureka: false # 是否注册自己的信息到EurekaServer,默认是true
    fetch-registry: false # 是否拉取其它服务的信息,默认是true
    service-url: # EurekaServer的地址,现在是自己的地址,如果是集群,需要加上其它Server的地址。
      defaultZone: http://127.0.0.1:${server.port}/eureka
登入後複製

運行專案:訪問http://127.0.0.1:8081

深入解析springCloud的Eureka實踐

此時一個Eureka註冊中心就建置成功了

以上是深入解析springCloud的Eureka實踐的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

面試回饋 Spring Cloud 的25連環砲 面試回饋 Spring Cloud 的25連環砲 Aug 24, 2023 pm 03:57 PM

Spring Cloud目前相當的火熱,也差不多是java開發者必備技能之一了。面試的時候被問到,那也是正常不過了,很多人可能用來很久,但是沒有去了解原理,面試照樣掛掉。

比較與選擇指南:SpringCloud和SpringBoot的功能對比 比較與選擇指南:SpringCloud和SpringBoot的功能對比 Dec 29, 2023 pm 06:36 PM

SpringCloud和SpringBoot是目前Java領域中最熱門的開源框架,它們分別提供了一套完善的微服務架構和快速建立應用程式的解決方案。本文將對它們的功能進行比較,並給出選擇指南,以幫助讀者了解它們的優勢和適用場景。 SpringBoot是一個用於開發Java應用程式的框架,它提供了一個簡化的開發流程,整合了大量常用的功能和元件,減少了開發者的工作量

SpringCloud-Spring Boot Starter使用測試實例分析 SpringCloud-Spring Boot Starter使用測試實例分析 May 16, 2023 am 11:10 AM

SpringBootStarter是什麼? SpringBootStarter是在SpringBoot組件中被提出來的一種概念、簡化了很多煩瑣的配置、透過引入各種SpringBootStarter包可以快速搭建出一個專案的腳手架。例如我們常用的一些:spring-boot-starter-web:spring-boot-starter-data-redis:spring-boot-starter-data-mongodb:spring-boot-starter-data-jpa:spring-b

springcloud五大核心元件是哪些 springcloud五大核心元件是哪些 Jun 12, 2023 pm 03:51 PM

springcloud五大核心元件是:1、Eureka,實現服務治理;2、Ribbon,提供客戶側的軟體負載平衡演算法;3、Hystrix斷路器,防止一個應用程式多次試圖執行一個操作;4、Zuul,具有api網關,路由,負載平衡等多種作用;5、Config,進行設定管理。

SpringCloud和SpringBoot在微服務領域的應用方式的比較和分析 SpringCloud和SpringBoot在微服務領域的應用方式的比較和分析 Dec 29, 2023 pm 03:45 PM

近年來,隨著雲端運算和分散式架構的興起,微服務架構的應用越來越廣泛。而SpringCloud和SpringBoot作為Java開發中的兩個重要框架,對於微服務的實作起到了重要的作用。然而,許多人對於它們在微服務領域的不同應用方式仍有一定的疑惑。本文將從不同的角度來探索SpringCloud和SpringBoot在微服務中的應用方式。首先,讓我們來了解Spri

Idea springboot springCloud熱載入熱調試的常用方法有哪些 Idea springboot springCloud熱載入熱調試的常用方法有哪些 May 18, 2023 pm 05:43 PM

場景描述在專案開發的過程中,需要修改調試的時候偶每次都需要重啟專案浪費時間,以下是我整理的兩種常用的兩種方式一修改啟動配置方式(主要針對debug模式下)點擊啟動設定=》editconfigrations…configration下面修改Updateclassesandresourceson'update'action:當使用者主動執行更新的時候更新快速鍵:Ctrl+F9onframedeactication:在編輯視窗失去焦點的時

springcloud和springboot有什麼差別 springcloud和springboot有什麼差別 Dec 28, 2023 pm 03:34 PM

springcloud和springboot的區別:1、作用;2、使用方式;3、創作初衷;4、目的;5、整合性;6、擴展性;7、複雜性;8、社群支援;9、安全;10 、部署和運維。詳細介紹:1、作用,Spring Boot主要的作用是為微服務開發提供一種快速的方式,簡化配置文件,提高工作效率,而Spring Cloud則是一個綜合管理框架,用於給微服務提供一個綜合管理框架等等。

從架構角度看SpringCloud與SpringBoot的差異 從架構角度看SpringCloud與SpringBoot的差異 Dec 29, 2023 pm 04:13 PM

從架構角度看SpringCloud與SpringBoot的差異引言:在當今的網路時代,建構分散式系統已經成為了一種必要的需求。而SpringBoot和SpringCloud正是為了滿足這個需求而誕生的。儘管它們都是Spring框架所提供的解決方案,但從架構角度來看,它們存在著一些重要的差異。本文將從架構的角度出發,對SpringBoot和SpringCl

See all articles