spring cloud系列教程第六篇-Eureka叢集版
spring cloud系列教程第六篇-Eureka叢集版
本文主要內容:
本文來源:本文由凱哥Java(kaigejava)釋出在部落格園部落格的。轉載請註明
1:Eureka執行步驟理解
2:叢集原理
3:Eureka叢集搭建
4:修改payment和order專案註冊到叢集中
本文是由凱哥(凱哥Java:kagejava)釋出的《spring cloud系列教程》教程的總第六篇:《spring cloud系列教程第六篇-Eureka叢集版》。
本文是幾個維度中的第一個維度:註冊與發現維度配置中心管理之Eureka相關教程第三篇。
一:eureka註冊與發現步驟
服務註冊:將服務資訊註冊到註冊中心
服務發現:從註冊中心上獲取到服務資訊
其實質就是:key-value形式的。Key:服務的名字 value:服務呼叫地址
執行步驟:
1:先啟動eureka註冊中心
2:啟動服務提供者(我們這裡的服務提供者就是payment支付服務)
3:服務提供者在啟動後會把自身的資訊(如服務地址,以別名方式註冊到)註冊到eureka中
4:消費者(我們這裡是order服務)在需要呼叫介面的時候,使用服務別名去註冊中心獲取到實際的RPC遠端呼叫地址
5:消費者獲取到呼叫地址後,底層實際是利用HttpClient技術實現遠端呼叫的
6:消費者獲得服務地址後會快取在本地的JVM記憶體中,預設每隔30秒更新移除服務呼叫地址。
問題:微服務RPC遠端呼叫最核心的是什麼?
高可用。試想下,如果你的註冊中心有且僅有一個 only One.那麼,如果註冊中心故障了,那就呵呵了,會導致整個服務的不可用。後果可是很嚴重的。所以,解決辦法就是:搭建Eureka註冊中心叢集。實現負載均衡+故障容錯(其實從上圖中也可以看出,eureka server是多個,provider也是多個)
二:Eureka叢集原理:
互相註冊,相互守望
什麼意思呢?叢集的話,肯定是多個。比如我們現在單臺的eureka埠是7001,假設還有一臺服務是7002.那麼7001的註冊地址應該是7002,7002的註冊地址是7001.這樣就相互註冊了。7001會每30s給7002同步一次心跳,同理7002也會的。所以就相互守望了。
簡單的示意圖如下:
三:Eureka叢集搭建
3.1:新建cloud-eureka-server7002專案。作為第二臺eureka服務
3.2:修改pom.將7001的pom中相關依賴複製到7002中
3.3:修改hosts檔案。新增兩個對映:
修改後的hosts:
3.4:修改yml檔案。
在修改yml檔案的時候,需要注意:現在是多臺eureka server。需要互相註冊和相互守望。這個的寫法和單機版的不一樣了。我們先來看看單機版yml配置檔案。
單機版yml檔案配置:
叢集的時候,因為要互相註冊,相互守望。所以yml檔案有些不同。
7001服務的yml不同地方:
7002的yml:
我們可以看到hostname和defaultZone不同了
配置完成之後,啟動7001和7002,訪問兩個連線檢視有什麼不同
我們可以看到,DS Replicas的不同。
當我們訪問7001的時候,可以看到ds列表是eureka7002說明我們叢集配置已建成成功了。
本文教程相關程式碼版本號:v0.0.9-20200504
接下來,我們就要修改payment和order這兩個微服務,將這兩個微服務註冊到eureka叢集中。歡迎大家和凱哥(凱哥Java:kaigejava)繼續一起學習。
四:將payment和order這兩個服務註冊到叢集中
4.1:payment修改
只需要修改payment8001的yml檔案中,和eureka相關的配置即可。
我們開看看單機版的時候配置:
Eureka.client.service-url.defaultZone是localhost的。如下圖:
進行修改:
Order80的修改一樣。
配置完成之後,啟動服務進行測試。
啟動順序:
先啟動註冊中心服務:eurekaSever 7001/7002服務
再啟動服務提供者:payment8001服務
再啟動服務提供者:payment8001服務
訪問根據訂單id獲取連線,檢視返回資訊
檢視7001上註冊的eureka客戶端:
檢視7002上客戶端:
我們發現這兩個註冊中心都有order server和payment server服務。說明我們服務已經成功註冊到叢集中了。
檢視訪問效果:
可以正常訪問。說明叢集搭建及服務註冊到叢集中成功。
相關推薦
spring cloud系列教程第六篇-Eureka叢集版
spring cloud系列教程第六篇-Eureka叢集版 本文主要內容: 本文來源:本文由凱哥Java(kaigejava)釋出在部落格園部落格的。轉載請註明 1:Eureka執行步驟理解 2:叢集原理 3:Eureka叢集搭建 4:修改payment和order專案註冊到叢集中 本文是由凱哥(凱哥Java
Spring Cloud系列教程 | 第六篇:Spring Cloud Zuul作為API閘道器實現請求路由轉發教程
推薦 Spring Cloud 視訊: Spring Cloud Zuul作為API閘道器實現請求路由轉發教程 當我們的架構實現前後端分離以後,前端和後端之間互動就是通過API閘道器進行,API閘道器兩個職責: 1.設計上的適配層,或稱Facade模
spring cloud系列教程第四篇-Eureka基礎知識
通過前三篇文章學習,我們搭建好了兩個微服務工程。即:order80和payment8001這兩個服務。有了這兩個基礎的框架之後,我們將要開始往裡面新增東西了。還記得分散式架構的幾個維度嗎?我們要通過一個一個維度來講解每個知識點。如下圖: 任何一個分散式或者是微服務都會需要一個服務註冊中心。用
Spring Cloud系列教程第九篇-Eureka自我保護機制
Spring Cloud系列教程第九篇-Eureka自我保護機制 本文主要內容: 1:自我保護介紹 2:導致原因分析 3:怎麼禁止自我保護 本文是由凱哥(凱哥Java:kagejava)釋出的《spring cloud系列》教程的總第九篇: 本文是幾個維度中的第一個維度:註冊與發現維度配置中
Spring Cloud系列教程 | 第三篇:Eureka心跳健康檢查機制
推薦 Spring Cloud 視訊: Eureka心跳健康檢查機制 執行階段執行健康檢查的目的是為了從Eureka伺服器登錄檔中識別並刪除不可訪問的微服務,Eureka 伺服器並不是向客戶端傳送心跳請求,而是反過來,Eureka 客戶端將心跳傳送到Eurek
Spring cloud系列教程第十篇- Spring cloud整合Eureka總結篇
Spring cloud系列教程第十篇- Spring cloud整合Eureka總結篇 本文主要內容: 1:spring cloud整合Eureka總結 本文是由凱哥(凱哥Java:kagejava)釋出的《spring cloud系列》教程的總第十篇: 本文是幾個維度中的第一個維度:註冊與發現維度配置中心
Spring Cloud系列教程 | 第四篇:Eurake的自我保護機制
Eurake的自我保護機制 從CAP定理角度看,Eureka是一個AP系統,以高可用性為主,而zookeeper則是CP,以高一致性為主,所以如果使用ZK在服務發現和註冊方面,可用服務資訊雖然很及時,但是會出現不可用情形,造成無法克服的生產事故。Eure
Spring Cloud系列教程 | 第十篇:Spring Cloud Config Server和Spring Cloud Bus以及Kafka和資料庫動態重新整理配置
推薦 Spring Cloud 視訊: Spring Cloud Config Server和Spring Cloud Bus以及Kafka和資料庫動態重新整理配置 Spring cloud config server如果不結合Spring cloud
Spring Cloud系列教程 | 第七篇:使用Spring Cloud Zuul實現過濾器或攔截器功能案例
推薦 Spring Cloud 視訊: 使用Spring Cloud Zuul實現過濾器或攔截器功能案例 Spring Cloud的API閘道器不但可以實現類似NGINX+Lua強大的路由分發,實現動靜頁面的分流,更重要可以實現對所有發往後端微服務請求的攔
spring cloud系列教程第八篇-修改服務名稱及獲取註冊中心註冊者的資訊
spring cloud系列教程第八篇-修改服務名稱及獲取註冊中心註冊者的資訊 本文主要內容: 1:管理頁面主機名及訪問ip資訊提示修改 2:獲取當前註冊中心的服務列表及每個服務對於的服務提供者列表 本文是由凱哥(凱哥Java:kagejava)釋出的《spring cloud系列》教程的總第八篇:《修改服務
Spring Cloud系列教程 | 第十四篇:Spring Cloud與Kubernetes的整合
推薦 Spring Cloud 視訊: Spring Cloud與Kubernetes的整合 Spring Cloud提供了專門的spring-cloud-kubernetes專案與k8s整合,儘管k8s提供了服務註冊和發現等功能與Spring cl
spring cloud系列教程(4)--eureka註冊中心叢集配置,微服務註冊資訊完善
給大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油 1.Eureka是什麼 Eureka是Netflix的一個子模組之一,AP設計原則。Eureka是一個以及Rest的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。服務註冊與發現對於微服務架構來
史上最簡單的SpringCloud教程 | 第六篇: 分散式配置中心(Spring Cloud Config)(Finchley版本)
在上一篇文章講述zuul的時候,已經提到過,使用配置服務來儲存各個服務的配置檔案。它就是Spring Cloud Config。 一、簡介 在分散式系統中,由於服務數量巨多,為了方便服務配置檔案統一管理,實時更新,所以需要分散式配置中心元件。在Spring Cloud中,
史上最簡單的SpringCloud教程 | 第六篇: 分散式配置中心(Spring Cloud Config)
在上一篇文章講述zuul的時候,已經提到過,使用配置服務來儲存各個服務的配置檔案。它就是Spring Cloud Config。 一、簡介 在分散式系統中,由於服務數量巨多,為了方便服務配置檔案統一管理,實時更新,所以需要分散式配置中心元件。在Spring
「Odoo 基礎教程系列」第六篇——從 Todo 應用開始(5)
大家好鴨,我又來更新啦!還記得我們在第二篇教程中提到過的動作(actions)嗎,今天我們就來專門講講在 Odoo 中的 action,學習不同型別的動作對應的應用場景,並且在我們的 Todo 應用中使用上其中一些型別的動作。 視窗動作 視窗動作在 Odoo 中是
Spring Cloud系列教程 | 第一篇:微服務架構演進
架構的演變過程: 單體架構——>垂直架構——>soa面向服務架構——>微服務架構 我們為什麼要使用Spring Cloud? 單體架構 在網站開發的前期,專案面臨的流量相對較少,單一應用可以實現我們所需要的功能,從而減少開發、部署和維護的難度。
Spring Boot 基礎系列教程 | 第八篇:使用Java 8中LocalDate等時間日期類的問題解決
推薦 Spring Boot/Cloud 視訊: Spring Boot和Feign中使用Java 8時間日期API(LocalDate等)的序列化問題 LocalDate、LocalTime、LocalDateTime是Java 8開始提供的
Spring cloud系列教程第二篇:支付專案父工程圖文搭建
Spring cloud系列教程第二篇:支付專案父工程圖文搭建 在講解spring cloud相關的技術的時候,咱們就模擬訂單支付這個流程來講講 在這個支付模組微服務搭建過程中,上面的這些技術,都會融入進來。老的會講解(因為老的技術還有很多公司會使用到,誰也不知道下一個公司會用新的還是舊的,
Spring Boot2.0系列教程合集、Spring Cloud系列教程合集、Spring Boot常見錯誤合集、Spring Cloud常見錯誤合集
以下內容結合實際專案和工作經驗整理的Spring Boot和Spring Cloud學習教程和一些常見錯誤,希望能幫助到剛學習到童鞋,學習過程遇到問題評論回覆,第一時間會回覆! Spring Boot2.0系列教程合集 1、Spring Boot2.0系列教程之idea下新
spring cloud系列教程(14)---配置中心實戰
大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油,這個公眾號已經接入圖靈 這兩天更新的有點慢兩點原因 1.字符集,在github上上傳的配置檔案一定要轉成utf-8的!!!!!!!! 2.配置中心的配置檔案的檔名稱和application: name