天天看點

微服務架構(SpringCloud架構、服務治理)微服務架構概念學習

微服務架構概念學習

https://blog.csdn.net/weixin_50074995/article/details/116233853?spm=1001.2014.3001.5502

(微服務概念)

在實際應用中微服務技術雖然帶來了許多的好處優點,但是也帶來了許多必須處理的問題,這些問題則需要我們引入新的技術來解決。

但是因為如果引入大量技術的話肯定會産生許多相容性問題,想要解決這些問題的開銷無疑是巨大的,是以雖然這種方式更加靈活,但是一般也隻有大型公司才有資本和需求來應用。

通常的中小型企業一般都是用其他公司內建好的架構來進行開發。SpringCloud便是其中一個主流且成熟的架構,同時因為springBoot的成熟與廣泛使用,是以便從SpringCloud開始學習。

SpringCloud架構是基于springBoot架構而開發的微服務架構,他提供一套微服務解決方案,包括服務注冊與發現,配置中心,全鍊路監控,服務網關,負載均衡,熔斷器等元件,

微服務架構(SpringCloud架構、服務治理)微服務架構概念學習

SpringCloud中所內建的技術并不全是其自己開發的,他還內建了很多已經經過實際開發環境考驗的、成熟的、穩定的技術,比如在其官網提供的元件中可以看到在其元件中有許多來源于NetFLlix。

微服務架構中最核心的部分是服務治理,在SpringCloud中使用了Eureka來實作

服務治理

服務治理最基礎的元件是注冊中心,他的作用就是服務的注冊與發現。

在微服務中一般會組成伺服器叢集來處理大量的客戶請求,這個時候就需要服務治理技術來負責配置設定請求,讓用戶端知道應該去哪裡請求。

微服務架構(SpringCloud架構、服務治理)微服務架構概念學習

在使用者請求的時候要解決以下問題:

有哪些伺服器

伺服器是否可用

伺服器的位址

這個時候我們就需要一個管理者來處理這些問題,這個管理者我們稱之為注冊中心

在服務治理中需要進行以下步驟

服務注冊:每個服務在啟動的時候,告訴注冊中心自己的位置資訊。

服務發現:商品服務想要調用訂單服務,先找注冊中心擷取到所有服務的位置資訊,然後找到訂單服務的位址,發起調用。

服務續約(心跳機制):服務啟動之後,每過30秒向注冊中心心跳一次(就是發送一個消息,告訴注冊中心自己還活着),如果注冊中心長時間沒有收到某個服務的心跳,那麼就會認為這個服務已經當機,就從服務注冊清單中删除

SpringCloud使用Eureka來實作服務治理的

在Eureka的架構中,分為 Eureka Server 和 Eureka client

Eureka 注冊中心 Eureka Server

Eureka Server 作為服務注冊功能的伺服器,它也是服務注冊中心。

Eureka Server提供服務注冊服務:在各個節點啟動後,都會在EurekaServer中進行資訊注冊,這樣EurekaServer中的服務系統資料庫中将會存儲所有可用服務節點的資訊,服務節點的資訊可以在界面中直覺的看到(監控頁面)

而系統中的其他微服務,使用 Eureka 的用戶端連接配接到 Eureka Server并維持心跳連接配接。這樣系統的維護人員就可以通過 Eureka Server 來監控系統中各個微服務是否正常運作。

心跳連接配接:在規定時間内向服務注冊中心發送資訊,更新自身狀态資訊,以維持注冊中心中的服務清單的資訊更新,如果超過規定時間沒有發送請求,則視為此台伺服器出現故障不可請求

Eureka 用戶端 Eureka Client

EurekaClient是一個Java用戶端,用于簡化Eureka Server的互動,用戶端同時也具備一個内置的、使用輪詢(round-robin)負載算法的負載均衡器。

在應用啟動後,将會向Eureka Server發送心跳(預設周期為30秒)。如果Eureka Server在多個心跳周期内沒有接收到某個節點的心跳,EurekaServer将會從服務系統資料庫中把這個服務節點移除(預設90秒)Eureka Client會緩存服務系統資料庫中的資訊。這種方式有一定的優勢首先可以降低Eureka Server的壓力,其次當所有的Eureka Server當機服務調用方依然可以完成調用

微服務架構(SpringCloud架構、服務治理)微服務架構概念學習