日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

SpringCloud之Eureka注冊中心

作者:蘭舟千帆 更新時間: 2022-07-13 編程語言

Eureka注冊中心

服務注冊與負載均衡

服務注冊

說明一下這個是干嘛用的

Eureka 是 Netflix 出品的用于實現服務注冊和發現的工具,Spring Cloud 封裝了 Netflix 公司開發的 Eureka 模塊來實現服務注冊和發現
Eureka采用C-S的設計架構,包含Eureka Server 和Eureka Client兩個組件

它的原理就是基于服務提供者和服務消費者。像我們的orderservice需要去訪問userservice,那么userservice就是服務提供者,orderservice就是。服務消費者。

服務啟動后向Eureka注冊,Eureka Server會將注冊信息向其他Eureka Server進行同步,當服務消費者要調用服務提供者,則向服務注冊中心獲取服務提供者地址,然后會將服務提供者地址緩存在本地,下次再調用時,則直接從本地緩存中取,完成一次調用。

在默認配置中EurekaServer服務在一定時間(默認為90秒)沒接受到某個服務的心跳連接后,EurekaServer會注銷該服務。但是會存在當網絡分區發生故障,導致該時間內沒有心跳連接,但該服務本身還是健康運行的情況。Eureka通過“自我保護模式”來解決這個問題。
在自我保護模式中,Eureka Server會保護服務注冊表中的信息,不再注銷任何服務實例。

我們可以對服務創建多個節點,如果有的節點掛掉以后,就可以去啟用另外可用的服務。

當然這個是基于springcloud的。所以我們需要導入相關的依賴。

在這之前啊,我們需要將eureka服務端創建出來

我們再創建一個模塊
在這里插入圖片描述
打開這個pom文件添加必要依賴

在這里插入圖片描述
然后創建啟動類
在這里插入圖片描述
一定要注意啟動類要放在java目錄的包下面,所以最好創建包后,將這個啟動類放到下面,不要直接放在java目錄下。

這里我們做的就是服務端。

即熱是服務,那么我們還是要配置一下,比如端口等等,所以需要在resource下面創建一個yml文件。

在這里插入圖片描述

一定要注意yml文件中字段的層級關系,這是非常嚴格的。

配置完這個后,我們需要配置客戶端。
首先還是需要引入依賴。

在這里插入圖片描述

useservice 和orderservice都需要導入。

另外需要配置服務端的地址

在這里插入圖片描述
同樣是都需要配置。
初步的話其實還有一定就是這里
在這里插入圖片描述
我們需要指定一下服務名稱。先這樣配置一下,然后去啟動

三者都啟動
在這里插入圖片描述
現在需要去訪問一個地址

在這里插入圖片描述
注意端口10086后不需要加eureka

我們現在需要去查看服務是否注冊成功,或者說eureka服務端是否將userservice 和orderservice加入實例。
在這里插入圖片描述
在這里插入圖片描述

這樣就成功了。

然后我們就可以開啟去使用它了。
這里我們可以修改一下這里

在這里插入圖片描述
但是在這之前,我們需要做一個負載均衡的指定,否則是無法解析服務地址。
在這里插入圖片描述
然后這樣

在這里插入圖片描述

這樣我們再次啟動,就可以去訪問了。

在這里插入圖片描述

Ribbon負載均衡

上面我們用到了負載策略

負載均衡是高可用網絡基礎架構的關鍵組件,通常用于將工作負載分布到多個服務器來提高網站、應用、數據庫或其他服務的性能和可靠性。
注:圖片數據來自知乎
什么是負載均衡
從這里可以去看負載均衡策略
沒有負載均衡的服務架構
在這里插入圖片描述
有負載均衡的服務架構

在這里插入圖片描述
我們這樣的特點可以去用多實例部署的特點。
在這里插入圖片描述
一定要記得修改端口

在這里插入圖片描述
在這里插入圖片描述
將這個服務啟動起來

然后我們去eureka注冊中心看看有沒有實例

在這里插入圖片描述
可以看到userservice一共有兩個實例對象了。
這樣創建多實例的好處就是如果一個實例存在問題的話就可以換另一個。我們這里就模擬了多實例部署。

還有我們需要去觀察一下這個負載均衡策略,其實默認是輪詢的負載均衡策略。

我們可以去測試,多訪問幾次userservice,而現在userservice有兩個實例,我們在postman測試工具做出測試,發出請求,看看具體調用的哪個實例。

注意現在需要改一個東西,就是上面有一個錯誤的地方。有關日志的。
在這里插入圖片描述
logging.level設置日志級別,后面跟生效的區域,比如root表示整個項目,也可以設置為某個包下,也可以具體到某個類名(日志級別的值不區分大小寫)這里需要注意,上面的包名沒有寫對。

然后開始測試,首先將控制臺的輸出全部清除掉。
在這里插入圖片描述
我這里從1到6一共訪問6次。

在這里插入圖片描述

然后來看控制臺的日志輸出,可見這是輪詢的方式

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

指定負載均衡規則

默認的是輪詢,我們可以自己去指定一個規則
在這里插入圖片描述
所以就從這里來重新指定規則

我們在orderservice的啟動類里面寫,當然這個是代碼的方式。并且,我們需要將它做成一個bean。

在這里插入圖片描述
我們這樣定義是選擇了隨機的原則,代表隨機選擇一個服務器。
然后我們去重新啟動測試
在這里插入圖片描述
在這里插入圖片描述
測試成功

如果采用配置文件的方式

在這里插入圖片描述
兩者配置不同之處在于作用范圍。代碼配置的話就是會在全部服務中起作用,而配置文件配置的話就只會在指定的服務起作用。

還有一個就是關于啟動問題的知識點,默認是懶加載。
在這里插入圖片描述
我們這樣去配置

在這里插入圖片描述

原文鏈接:https://blog.csdn.net/jgdabc/article/details/125751557

欄目分類
最近更新