天天看點

Spring Cloudj自主學習總結之Euerka Server 和 Euerka Client!

先講講什麼是Spring Cloud !

 1.1 spring cloud 是一系列架構的集合。它利用Spring boot的開發簡便性,簡化了分布式系統基礎設施的開發。

比如服務發現、配置中心、消息總棧、負載均衡、熔斷器、資料監控等。

1.2 Spring cloud與spring boot 的關系。

spring boot是一套快速配置的上手架構,可以基于spring boot快速開發單個服務。

Sping Cloud 主要基于Spring boot實作的雲引用開發工具;Spring Boot 主要在于快速,簡便,單個服務個體。Spring Cloud主要在于全局的多個服務治理架構;

boot使用了預設大于配置的理念,很多內建方案已經幫你配置好了,能不配置,Spring Cloud很大一部分是基于boot實作。cloud于boot暫時是不可以分割的一體。

Spring Boot可以離開Spring Cloud獨立使用開發項目,但是Spring Cloud離不開

Spring Boot。

2.Spring Cloud的主要架構如下:

服務發現 ------ NetFlix Eureka

服務調用 ------ Netflix feign

熔斷器 ----- NetFlix Hystrix

服務網關----- NetFlix Zuul

分布式配置 -----Spring Cloud Config

消息總棧 ------ Spring Cloud Bus

Spring Cloud 和Dubbo對比

Dubbo隻是實作了服務治理,但是Spring Cloud就不一樣了下面有17個子項目(暫時),服務治理值隻是其中一個。可以講Dubbo隻是Spring Cloud衆多兒子中的一個,

Spring Cloudj自主學習總結之Euerka Server 和 Euerka Client!

 2.1 Eureka

Eureka 是NetFlix開發的服務架構,Spring Cloud把它內建在自己的子項目

Spring - Cloud -netflix 中實作Spring Cloud 的服務發現功能,Eureka包含兩個元件

Eureka Server 和Eureka Client .

Eureka提供服務注冊,各個節點啟動後,會在Eureka Server中進行注冊,這樣一來Eureka server 

中的服務系統資料庫中将會存儲所有可用服務節點的資訊,服務界面的資訊可以在界面中直覺的看到,

Eureka Client是一個java用戶端用于簡化Eureka Server的互動,用戶端同時也就别一個内置,使用輪詢負載算法的負載均衡器

在應用啟動後,将會向Eureka Server發送心跳,預設周期是30秒,如果Eureka Server在多個心跳周期内沒有接受到某個節點的

心跳,Eureka server 将到系統資料庫中把這個節點移除。

Eureka Server之間通過複制的方式完成資料的同步,Eureka還提供了用戶端緩存機

制,即使所有的Eureka Server都挂掉,用戶端依然可以利用緩存中的資訊消費其他服務

的API。綜上,Eureka通過心跳檢查、用戶端緩存等機制,確定了系統的高可用性、靈活

性和可伸縮性。

下面就是分享一個搭建Euerka Server

https://blog.csdn.net/hcmony/article/details/77855158

但是有幾點需要注意的是看下圖:

Spring Cloudj自主學習總結之Euerka Server 和 Euerka Client!

上圖中的這部分是鎖定版本<dependencyManagement>,可以放在依賴的父項目中,

下面是解釋配置檔案的作用:

Spring Cloudj自主學習總結之Euerka Server 和 Euerka Client!

啟動類如下就OK了!

Spring Cloudj自主學習總結之Euerka Server 和 Euerka Client!

下面介紹下服務注冊:

項目其他子產品需要添加啊如下依賴。

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

下面是配置檔案需要添加的東西

eureka:

client:

service‐url:

defaultZone: http://localhost:6868/eureka

instance:

prefer‐ip‐address: true

還有一點就是添加啟動類的一個注解

@EnableEurekaClient

啟動測試:将每個微服務啟動起來,會發現eureka的注冊清單中可以看到這些微服

務了

講下個人原因:因為網咯maven下載下傳的東西總是顯示unknown是以木有貼圖了,後期改上

Eureka的保護模式:

假如在Eureka server 的首頁看到

Spring Cloudj自主學習總結之Euerka Server 和 Euerka Client!

下面這樣的文字代表進入保護模式了!

eureka server 在運作期間,會統計心跳,有一個失敗比例在15分鐘之内是否低于85%,達到了這個閥值。

euerka server 會将目前的執行個體已經注冊的資訊保護起來,同時發出上面截圖的那個警告。

隻要進入保護模式Euerka Server将會嘗試保護其服務系統資料庫中的資訊,不會輕易的删除服務系統資料庫

中的資料。

繼續閱讀