SpringCloud學習之—Eureka集群搭建

来源:https://www.cnblogs.com/Lyn4ever/archive/2020/02/27/12370203.html
-Advertisement-
Play Games

Eureka集群的搭建 上次說過了在SpringCloud應用中使用Eureka註冊中心,用來對服務提供者進行服務註冊與發現,但同時,它也是一個“微服務”,單個應用使用空間有限,因此和zookeeper一樣,它也需要搭建集群(Cluster)。 搭建Eureka集群的原理就是創建多個eureka應用 ...


Eureka集群的搭建

上次說過了在SpringCloud應用中使用Eureka註冊中心,用來對服務提供者進行服務註冊與發現,但同時,它也是一個“微服務”,單個應用使用空間有限,因此和zookeeper一樣,它也需要搭建集群(Cluster)。

搭建Eureka集群的原理就是創建多個eureka應用(埠不同),然後將所有的註冊中心的地址聯合到一起。下邊就以創建三個集群為例

一、將之前的創建的eureka項目複製三份

複製三份是為了不破壞原來的項目,讓小伙伴們更好地學習

  • 先創建三個子Module,然後複製pom.xml中信依賴,複製application.yml,然後各自創建啟動類
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
server:
  port: 7001

eureka:
  instance:
    hostname: localhost #eureka服務端的實例名稱
  client:
    register-with-eureka: false     #false表示不向註冊中心註冊自己。
    fetch-registry: false     #false表示自己端就是註冊中心,我的職責就是維護服務實例,並不需要去檢索服務
    service-url:
#    這兩個變數就是上邊定義過的
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #設置與Eureka Server交互的地址查詢服務和註冊服務都需要依賴這個地址。

二、修改application.yml

這是最主要的也是最關鍵的一步,就是修改其中的eureka.client.service-url.defaultZone這一項目。之前是這樣的

http://${eureka.instance.hostname}:${server.port}/eureka/

之前使用的是變數,就是當前文件中定義過的eureka.instance.hostname和server.port 這一個地址,現在有了集群後,就要直接寫死了。修改原則如下:

  • 在任意一個eureka項目中,將上邊這個地址修改為其他兩個eureka項目的地址,中間用逗號隔開
  • 但是呢,這三個eureka項目的hostname還不能一樣,不能全都是localhost,所以開發的時候,要在本地設置虛擬功能變數名稱
  • 在windows下的C:\Windows\System32\drivers\etc\HOSTS文件最後添加如下
127.0.0.1 eureka1
127.0.0.1 eureka2
127.0.0.1 eureka3

這樣,就可以將eureka項目中的hostname改為上邊三個中的一個了

比如,eureka-cluster-7001這個項目修改後的application.yml如下:

server:
  port: 7001

eureka:
  instance:
    hostname: eureka1 #eureka服務端的實例名稱
  client:
    register-with-eureka: false     #false表示不向註冊中心註冊自己。
    fetch-registry: false     #false表示自己端就是註冊中心,我的職責就是維護服務實例,並不需要去檢索服務
    service-url:
#    單個eureka
#      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #設置與Eureka Server交互的地址查詢服務和註冊服務都需要依賴這個地址。
# euraka集群
      defaultZone: http://eureka2:7002/eureka/,http://eureka3:7003/eureka
  • 然後依次修改其他的兩個eureka項目,最後再用瀏覽器打開任意一個eureka項目的地址,可以看到如下界面

  • 在隨意訪問三個地址,可以在任意一個項目中看到其他兩個集集群

三、修改服務提供者來註冊到集群

  • 之前是單個eureka項目,所以服務提供者就只有一個註冊地址。現在是集群,所以要修改服務提供者的中的eureka註冊地址了

我改的是demo2-providereureka8001中的配置文件,修改如下:

eureka:
  client: #客戶端註冊進eureka服務列表內
    service-url:
#    這個地址是在eureka的application.yml中定義過的
#     單個eureka項目的的註冊地址
#      defaultZone: http://localhost:7001/eureka
#       eureka集群的註冊地址
      defaultZone: http://eureka1:7001/eureka,http://eureka2:7002/eureka,http://eureka3:7003/eureka

改完之後,然後啟動這個提供者項目 ,就可以在eureka集群的任意一個項目中看到這個服務了

關註微信公眾號“小魚與Java”獲取本項目代碼和更多SpringCloud知識


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <!--HTML代碼--> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>《風暴英雄》官方網站_暴雪出品 明星匯聚 MOBA競技新篇章</title> <link rel="shortcut icon" h ...
  • 1、前情: 本地寫的 Demo 傳到碼雲上面進行維護。 2、操作步驟: git init 將本地文件初始化為git 倉庫,文件件會多一個 .git 文件夾【版本庫】; git add . 或者 git add -A 將工作區的文件添加到暫存區; git commit -m '註釋' 將暫存區的文件提 ...
  • 什麼是編程?通俗意見上來講,就是把人的思維與步驟通過代碼的形式書寫展示出來,js的流程式控制制包含條件判斷if,switch選擇,迴圈for while;if(表達式 條件)=>真{語句}比方說var score=70;if(90<=score<=100){ console.log("123")},執行... ...
  • 此教程屬於開發實戰系列視頻教程,基於之前發佈的 「60 集微信小程式開發視頻教程」,更新的第二階段視頻課程。 此系列課程將直接進入實戰開發部分。 此系列視頻課程包含: 項目初始化 頁面 UI 開發 頁面路由邏輯 微信小程式雲開發平臺的使用 小程式用戶登錄與用戶信息管理 請求天氣預報介面 列表數據處理 ...
  • 轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。 原文出處:https://blog.bitsrc.io/10-top-chrome-extensions-for-front-end-developers-db23a01dce1e 1. CSSViewer ...
  • javascript屬於弱類型,值包含:數字,字元串和布爾值,c++與java屬於強類型;int a="a",string a="a" 報錯;var a ;原始類型:數字number 字元串string 布爾值 Boolean undefind null,對象object,原始值組合一起;對象分為1... ...
  • ,js的運算符分為算數,賦值,比較和邏輯運算符;常見的算數有:+ - * / %(加減乘除,取模),比方說5/4=4*1+1;5%4=1,js算數順序:從左往右,先* / %後+ ;js的值包含數字,字元串,布爾值;在算數運算中,“加號”:有字元串,按照字元串處理,沒有按照數字處理;註意布爾值fa... ...
  • 獲取滑鼠位置及滑鼠單擊了哪個按鍵。private void GetMousePoint(){ Point ms = Control.MousePosition; this.label2.Text = string.Format("當前滑鼠位置:{0}:{1}", ms.X, ms.Y); Mouse... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...