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

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介

這篇具有很好參考價(jià)值的文章主要介紹了[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、服務(wù)拆分

1、案例一:多端口微服務(wù)

2、案例二:服務(wù)遠(yuǎn)程調(diào)用

二、Eureka

1、Eureka 原理分析

2、Eureka 服務(wù)搭建(注冊(cè) eureka 服務(wù))

3、Eureka 服務(wù)注冊(cè)(注冊(cè)其他服務(wù))

4、Eureka 服務(wù)發(fā)現(xiàn)(服務(wù)拉?。?/p>

三、Ribbon 負(fù)載均衡?

1、負(fù)載均衡原理

2、負(fù)載均衡策略

3、饑餓加載


一、服務(wù)拆分

通過 2 個(gè)案例,學(xué)習(xí)如何實(shí)現(xiàn)服務(wù)拆分。

  • 都需要引入 web 的起步依賴:

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

1、案例一:多端口微服務(wù)

需求:

  • 將 Order 和 User 模塊的服務(wù)進(jìn)行拆分,通過不同的 URL 進(jìn)行服務(wù)調(diào)用。

(1)項(xiàng)目結(jié)構(gòu)

  • 為 2 個(gè)模塊都添加上各自的 Controller;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(2)編寫 Controller

  • 寫一個(gè)簡(jiǎn)單的 Controller,在頁面上顯示字符串即可;
  • UserController 類似;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(3)設(shè)置不同的端口,啟動(dòng) application

  • 為兩個(gè)模塊設(shè)置不同的服務(wù)器端口(user 設(shè)置 8081、order 設(shè)置 8080);

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

  • 將 Order 模塊和 User 模塊的 Application 都啟動(dòng)起來;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

  • 訪問頁面 /user/query 和 /order/query

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

2、案例二:服務(wù)遠(yuǎn)程調(diào)用

需求:

  • 在 Order 的實(shí)體類中包含了 User 類型的屬性,當(dāng)根據(jù)訂單號(hào)獲取訂單信息時(shí),由于 Order 和 User 的數(shù)據(jù)庫訪問也是獨(dú)立的,導(dǎo)致 User 屬性為 null。
  • 因此在 Order 模塊中需要調(diào)用 User 模塊的查詢 user 的功能來獲取 User 信息,再賦值給 Order。

(1)項(xiàng)目結(jié)構(gòu)

  • 兩個(gè)模塊都需要?jiǎng)?chuàng)建對(duì)應(yīng)的實(shí)體類;
  • Order 還需要?jiǎng)?chuàng)建 service 和 mapper;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(2)OrderController 和 UserController

  • 兩個(gè)模塊的 Controller 都需要添加相應(yīng)的方法;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(3)OrderMapper?

  • 為了簡(jiǎn)單起見,這里不引入連接數(shù)據(jù)庫操作;
  • 直接在 mapper 中實(shí)現(xiàn)返回一個(gè) User 的方法;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(4)OrderSrevice

OrderSrevice 需要兩個(gè)屬性:OrderMapper 和 RestTemplate;

其中 RestTemplate 就是幫助我們實(shí)現(xiàn)遠(yuǎn)程服務(wù)調(diào)用的關(guān)鍵;

  • url 屬性:表示發(fā)送的請(qǐng)求;
  • responseType 屬性:表示返回的數(shù)據(jù)類型(默認(rèn)是 JSON);
  • getForObject() 方法:表示發(fā)送 get 請(qǐng)求;
  • postForObject() 方法:表示發(fā)送 post 請(qǐng)求;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(5)啟動(dòng)兩個(gè)模塊的 application

  • 訪問 /order/queryForOrderById/xxx;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

二、Eureka

1、Eureka 原理分析

觀看下面視頻:

08-Eureka-eureka原理分析_嗶哩嗶哩_bilibili

2、Eureka 服務(wù)搭建(注冊(cè) eureka 服務(wù))

(1)創(chuàng)建 eureka 服務(wù)模塊(eureka 為子工程)

  • 子工程的 pom 文件中引入依賴;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

  • 父工程的 pom 文件做好依賴管理;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(2)編寫 application 配置文件,注冊(cè) eureka

  • 設(shè)置服務(wù)端口;
  • 設(shè)置 eureka 服務(wù)名稱;
  • 設(shè)置 eureka 服務(wù)地址;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

為什么?eureka 自身的服務(wù)地址信息也是 client?

  • eureka 也是一個(gè)微服務(wù),所以 eureka 啟動(dòng)的時(shí)候,會(huì)將自己也注冊(cè)到 eureka 上。
  • 這是為了 eureka 之間的集群通信,當(dāng)有多個(gè) eureka 時(shí),defaultZone 就需要寫上多個(gè) URL。

(3)啟動(dòng) application,訪問 eureka

  • 為啟動(dòng)類添加 @EnableEurekaServer 注解;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

  • 訪問 localhost:10086/eureka,則會(huì)跳轉(zhuǎn)到 eureka 的管理界面;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

  • instances 表示注冊(cè)到 eureka 的服務(wù)示例(服務(wù)列表);

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

3、Eureka 服務(wù)注冊(cè)(注冊(cè)其他服務(wù))

(1)引入依賴

  • 分別在 Order 模塊和 User 模塊的 pom 文件中,都添加上如下依賴;
  • 注意:使用的是客戶端 client 的依賴;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(2)編寫 eureka 地址信息

這一步驟跟前面的是一樣的。

  • 設(shè)置服務(wù)端口;
  • 設(shè)置 eureka 服務(wù)名稱;
  • 設(shè)置 eureka 服務(wù)地址;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(3)將 User 和 Order 的 application 都啟動(dòng)

  • 在 Service 中添加 SpringBoot 服務(wù),即可一次性啟動(dòng);

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

  • 訪問 /localhost:10086,來到 eureka 管理頁面;
  • 此時(shí)已經(jīng)可以看到服務(wù)列表已經(jīng)有 3 個(gè)服務(wù)了;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(4)多實(shí)例部署

如果我們想要 User 有多個(gè)服務(wù)實(shí)例可以添加到服務(wù)列表上,可以復(fù)制多幾份 User 的運(yùn)行配置。

  • 選中要復(fù)制的運(yùn)行配置,點(diǎn)擊復(fù)制;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

  • 在 VM Option 中,添加參數(shù) server.port = 一個(gè)沒用過的端口;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

  • 啟動(dòng) 5 個(gè) application,觀察服務(wù)列表;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

  • ?可以發(fā)現(xiàn),Order 和 User 各多了 1 個(gè)服務(wù);

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

4、Eureka 服務(wù)發(fā)現(xiàn)(服務(wù)拉?。?/h3>

服務(wù)發(fā)現(xiàn)就是服務(wù)拉取。

服務(wù)拉取是基于服務(wù)名稱獲取服務(wù)列表(比如獲取 UserService 的服務(wù)列表,內(nèi)含?2 個(gè)服務(wù)),然后在對(duì)服務(wù)列表做負(fù)載均衡。

基于前面“服務(wù)拆分”的“案例二:服務(wù)遠(yuǎn)程調(diào)用”,我們來學(xué)習(xí)服務(wù)拉取。

(1)獲取服務(wù)列表

  • 修改 OrderService 中的代碼,用服務(wù)名代替 ip:port;
  • (既然需要負(fù)載均衡,因此肯定無法指定 ip:port,所以使用服務(wù)名代替)

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(2)添加負(fù)載均衡注解 @LoadBalanced

  • 在 order-service 項(xiàng)目的啟動(dòng)類 OrderApplication 中的 RestTemplate 添加負(fù)載均衡注解:

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(3)啟動(dòng) application,查詢 Order

  • 啟動(dòng)下面 5 個(gè) application;
  • 然后我們選擇使用 8080 端口的 Order 來獲取信息(也可以用 8083 的);

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

  • 發(fā)送 4 次獲取 Order 信息的請(qǐng)求,id 從 1~ 4;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

  • 觀察 2 個(gè) User 啟動(dòng)類的輸出,都輸出了 2 次信息;
  • 說明對(duì) user-service 服務(wù)列表做到了負(fù)載均衡;

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

三、Ribbon 負(fù)載均衡?

Ribbon 是一個(gè)基于 HTTP 和 TCP?客戶端的負(fù)載均衡的工具。

它可以在客戶端的 application 配置文件中,配置 RibbonServerList(服務(wù)端列表),使用 HttpClient 或 RestTemplate 模擬 http 請(qǐng)求,但是步驟比較繁瑣。

1、負(fù)載均衡原理

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

2、負(fù)載均衡策略

Ribbon 的負(fù)載均衡規(guī)則是一個(gè)叫做 IRule 的接口來定義的,每一個(gè)子接口都是一種規(guī)則。

(1)Java 可以使用的負(fù)載均衡規(guī)則

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

(2)負(fù)載均衡規(guī)則修改方法

默認(rèn)情況下,使用的是 ZoneAvoidanceRule。

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java

需要注意的是:

  • 第一種方式,可以對(duì)所有 order-service 模塊訪問的服務(wù)列表做到負(fù)載均衡;(大)
  • 第二種方式,只能對(duì)配置文件中指定的 service 做到負(fù)載均衡;(?。?/li>

3、饑餓加載

Ribbon 默認(rèn)是采用懶加載,即第一次訪問時(shí)才會(huì)去創(chuàng)建 LoadBalanceClient,請(qǐng)求時(shí)間會(huì)很長(zhǎng)。

而饑餓加載則會(huì)在項(xiàng)目啟動(dòng)時(shí)創(chuàng)建,降低第一次訪問的耗時(shí),通過下面配置開啟饑餓加載:

[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介,Spring,spring cloud,spring,后端,eureka,ribbon,java文章來源地址http://www.zghlxwxcb.cn/news/detail-713472.html

  • enabled = true,表示開啟饑餓加載;
  • clients = user-service,表示指定對(duì) user-service 這個(gè)服務(wù)饑餓加載;
  • clients 其實(shí)是數(shù)組形式,可以協(xié)商多個(gè)服務(wù);

到了這里,關(guān)于[SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介

    [SpringCloud] Eureka 與 Ribbon 簡(jiǎn)介

    目錄 一、服務(wù)拆分 1、案例一:多端口微服務(wù) 2、案例二:服務(wù)遠(yuǎn)程調(diào)用 二、Eureka 1、Eureka 原理分析 2、Eureka 服務(wù)搭建(注冊(cè) eureka 服務(wù)) 3、Eureka 服務(wù)注冊(cè)(注冊(cè)其他服務(wù)) 4、Eureka 服務(wù)發(fā)現(xiàn)(服務(wù)拉?。?三、Ribbon 負(fù)載均衡? 1、負(fù)載均衡原理 2、負(fù)載均衡策略 3、饑餓加載

    2024年02月08日
    瀏覽(15)
  • 【合集】Spring Cloud 組件——架構(gòu)進(jìn)化史話 & Eureka,Nacos,Apollo,OpenFeign,Ribbon,Sentinel,Gateway ,Seata+事務(wù). . .

    【合集】Spring Cloud 組件——架構(gòu)進(jìn)化史話 & Eureka,Nacos,Apollo,OpenFeign,Ribbon,Sentinel,Gateway ,Seata+事務(wù). . .

    Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智能路由,微代理,控制總線,一次性令牌,全局鎖,領(lǐng)導(dǎo)選舉,分布式會(huì)話,集群狀態(tài))。 注意: 首先,盡管Spring Cloud帶有“Cloud”這個(gè)單詞,但它并不是云計(jì)算解

    2024年02月03日
    瀏覽(640)
  • 導(dǎo)入SpringCloud-Eureka依賴的問題Cannot resolve org.springframework.cloud:spring-cloud-starter-netflix-eure

    導(dǎo)入SpringCloud-Eureka依賴的問題Cannot resolve org.springframework.cloud:spring-cloud-starter-netflix-eure

    今天使用SpringCloud時(shí)遇到導(dǎo)入SpringCloud-Eureka依賴的問題 Cannot resolve org.springframework.cloud:spring-cloud-starter-netflix-eureka-server:unknown 網(wǎng)上搜了一下,回答多的五花八門,但是不夠簡(jiǎn)單粗暴,這里介紹一個(gè)簡(jiǎn)單的方法,只需要在項(xiàng)目的pom文件中做些設(shè)置即可 把大象放進(jìn)冰箱里需要幾步

    2024年02月14日
    瀏覽(96)
  • spring cloud 之 ribbon

    spring cloud 之 ribbon

    Spring Cloud Ribbon 是基于 Netflix Ribbon 實(shí)現(xiàn)的一套客戶端負(fù)載均衡的工具, 主要功能是提供客戶端負(fù)載均衡算法和服務(wù)調(diào)用 。簡(jiǎn)單的說,就是在配置文件中列出 Load Balance( LB: 將用戶的請(qǐng)求平攤的分配到多個(gè)服務(wù)上 )后面的所有機(jī)器,Ribbon 會(huì)自動(dòng)的幫助我們基于某種規(guī)則(如

    2024年02月12日
    瀏覽(16)
  • Spring Cloud Ribbon:負(fù)載均衡

    1. 介紹 Spring Cloud Ribbon 1.1 什么是 Spring Cloud Ribbon Spring Cloud Ribbon是Netflix開源的負(fù)載均衡器,它為分布式服務(wù)提供了客戶端負(fù)載均衡的功能。Ribbon可以根據(jù)一系列的負(fù)載均衡算法和配置策略,將客戶端的請(qǐng)求動(dòng)態(tài)分發(fā)到多個(gè)服務(wù)實(shí)例上,以實(shí)現(xiàn)高可用性和性能優(yōu)化。 1.2 負(fù)載均

    2024年02月19日
    瀏覽(22)
  • 【Spring Cloud 四】Ribbon負(fù)載均衡

    【Spring Cloud 四】Ribbon負(fù)載均衡

    【Spring Cloud一】微服務(wù)基本知識(shí) 【Spring Cloud 三】Eureka服務(wù)注冊(cè)與服務(wù)發(fā)現(xiàn) 目前公司項(xiàng)目使用的注冊(cè)中心主要是Spring Cloud Alibaba的Nacos做的注冊(cè)中心和配置中心。并且Nacos使用了Ribbon作為默認(rèn)的負(fù)載均衡器。但是相當(dāng)于將Ribbon的負(fù)載均衡給透明化了,日常開發(fā)明面上是看不到

    2024年02月14日
    瀏覽(27)
  • Spring Cloud學(xué)習(xí)筆記(Ribbon):Ribbon的應(yīng)用樣例

    Spring Cloud學(xué)習(xí)筆記(Ribbon):Ribbon的應(yīng)用樣例

    這是本人學(xué)習(xí)的總結(jié),主要學(xué)習(xí)資料如下 - 馬士兵教育 我們都知道 Ribbon 是用于負(fù)載均衡的。提供同一種服務(wù)的 Client 可能有多個(gè),比如有多個(gè) User Client 提供查詢用戶信息的服務(wù),使用 Ribbon 就能簡(jiǎn)單地達(dá)到負(fù)載均衡的效果。 想要使用 Ribbon ,無論是服務(wù)提供者還是調(diào)用服務(wù)

    2024年04月25日
    瀏覽(19)
  • 【Spring Cloud系列】- Ribbon詳解與實(shí)戰(zhàn)

    【Spring Cloud系列】- Ribbon詳解與實(shí)戰(zhàn)

    在前面的文章 Eureka詳解與實(shí)戰(zhàn)、Eureka Client應(yīng)用、RestTemplate詳解及其負(fù)載均衡幾篇文章中,已經(jīng)介紹了Spring Cloud基本應(yīng)用,本文將從講解在進(jìn)程層面的負(fù)載均衡,在Spring Cloud中如何使用Ribbon做系統(tǒng)應(yīng)用層面的負(fù)載均衡使用。 Ribbon 是netflix 公司開源的基于客戶端的負(fù)載均衡組件

    2024年02月15日
    瀏覽(21)
  • Spring Boot 中的 Spring Cloud Ribbon:什么是它,原理及如何使用

    Spring Boot 中的 Spring Cloud Ribbon:什么是它,原理及如何使用

    在分布式系統(tǒng)中,服務(wù)之間的通信是非常重要的。在大型的分布式系統(tǒng)中,有許多服務(wù)需要相互通信,而這些服務(wù)可能會(huì)部署在多個(gè)服務(wù)器上。為了實(shí)現(xiàn)服務(wù)之間的通信,開發(fā)人員需要編寫大量的代碼來處理負(fù)載均衡、故障轉(zhuǎn)移和服務(wù)發(fā)現(xiàn)等問題。為了簡(jiǎn)化這個(gè)過程,Spring

    2024年02月12日
    瀏覽(18)
  • Spring Cloud之負(fù)載均衡與服務(wù)調(diào)用(Ribbon)

    Spring Cloud之負(fù)載均衡與服務(wù)調(diào)用(Ribbon)

    目錄 Ribbon 簡(jiǎn)介 負(fù)載均衡 簡(jiǎn)介 負(fù)載均衡方式 服務(wù)端負(fù)載均衡 工作原理 特點(diǎn) 客戶端負(fù)載均衡 工作原理 特點(diǎn) 對(duì)比 實(shí)現(xiàn) 負(fù)載均衡策略 切換負(fù)載均衡策略 定制負(fù)載均衡策略 超時(shí)與重試 單個(gè)服務(wù)配置 全局配置 服務(wù)調(diào)用 示例 ????????Ribbon 是 Netflix 公司發(fā)布的開源組件,其

    2024年02月08日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包