微服務組件——Eureka組件的安裝與使用指南

文章目錄

  • 一、Eureka Server的安裝與配置
    • 1、創建Spring Boot項目
    • 2、添加依賴
    • 3、配置Eureka Server
    • 4、啟用Eureka Server
    • 5、啟動并訪問Dashboard
  • 二、Eureka Client的配置(服務注冊)
    • 1、添加客戶端依賴
    • 2、配置客戶端
    • 3、啟用服務發現
    • 4、啟動服務
  • 三、服務發現與調用
    • 1、使用RestTemplate調用服務
    • 2、使用FeignClient(聲明式調用)
  • 四、高可用配置(Eureka集群)
    • 1、配置多個Eureka Server節點
    • 2、客戶端注冊到集群
  • 五、常見問題與調優
    • 1、服務無法注冊
    • 2、調整心跳與剔除時間
    • 3、關閉自我保護模式(開發環境)
  • 六、注意事項

Eureka是Netflix開源的服務發現組件,用于微服務架構中的服務注冊與發現。以下是詳細的安裝和使用步驟:

一、Eureka Server的安裝與配置

1、創建Spring Boot項目

  • 使用Spring Initializr創建項目,選擇Spring Boot版本(如2.5.x)并添加依賴:
    • Spring Web(構建Web應用)
    • Eureka Server(服務端支持)

2、添加依賴

<!-- Maven依賴 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

3、配置Eureka Server

  • 在application.yml中配置:
server:port: 8761  # 默認端口eureka:client:register-with-eureka: false  # 不注冊自己fetch-registry: false        # 不拉取注冊表service-url:defaultZone: http://localhost:8761/eureka  # 服務地址

4、啟用Eureka Server

  • 在啟動類添加注解:
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}

5、啟動并訪問Dashboard

  • 訪問 http://localhost:8761 查看Eureka管理界面。

二、Eureka Client的配置(服務注冊)

1、添加客戶端依賴

<!-- Maven依賴 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2、配置客戶端

  • 在application.yml中指定Eureka Server地址:
spring:application:name: user-service  # 服務名稱eureka:client:service-url:defaultZone: http://localhost:8761/eureka

3、啟用服務發現

  • 在啟動類添加注解(可選,Spring Boot自動激活):
@SpringBootApplication
@EnableEurekaClient  // 或 @EnableDiscoveryClient
public class UserServiceApplication {public static void main(String[] args) {SpringApplication.run(UserServiceApplication.class, args);}
}

4、啟動服務

  • 客戶端啟動后,在Eureka Dashboard中查看注冊狀態。

三、服務發現與調用

1、使用RestTemplate調用服務

  • 啟用負載均衡:
@Bean
@LoadBalanced  // 通過服務名解析地址
public RestTemplate restTemplate() {return new RestTemplate();
}
  • 調用其他服務:
String serviceUrl = "http://user-service/getUser/1";
ResponseEntity<String> response = restTemplate.getForEntity(serviceUrl, String.class);

2、使用FeignClient(聲明式調用)

  • 添加依賴:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
  • 啟用Feign:
@EnableFeignClients
@SpringBootApplication
public class OrderServiceApplication { ... }
  • 定義接口:
@FeignClient(name = "user-service")
public interface UserServiceClient {@GetMapping("/getUser/{id}")String getUser(@PathVariable("id") Long id);
}

四、高可用配置(Eureka集群)

1、配置多個Eureka Server節點

  • 修改每個節點的application.yml,相互注冊:
# 節點1配置
eureka:client:service-url:defaultZone: http://node2:8762/eureka

2、客戶端注冊到集群

  • 客戶端配置多個Server地址:
eureka:client:service-url:defaultZone: http://node1:8761/eureka, http://node2:8762/eureka

五、常見問題與調優

1、服務無法注冊

  • 檢查客戶端配置的defaultZone是否正確。
  • 確保Eureka Server已啟動且網絡可達。

2、調整心跳與剔除時間

eureka:instance:lease-renewal-interval-in-seconds: 30   # 客戶端心跳間隔(默認30秒)lease-expiration-duration-in-seconds: 90 # 服務端剔除時間(默認90秒)

3、關閉自我保護模式(開發環境)

eureka:server:enable-self-preservation: false  # 關閉自我保護

六、注意事項

  • 版本兼容性:確保Spring Cloud與Spring Boot版本匹配(參考官方版本對照表)。
  • 生產環境建議:啟用安全認證、配置集群以提高可用性。
  • 替代方案:Eureka已進入維護模式,可考慮Consul、Nacos等現代服務發現工具。

通過以上步驟,您可以在微服務架構中快速集成Eureka,實現服務的注冊、發現與調用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899854.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899854.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899854.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

探索Doris:日志分析的新寵,是否能取代老牌ES?

在大數據時代&#xff0c;日志存儲與分析對于企業的運營和決策起著至關重要的作用。Elasticsearch&#xff08;簡稱 ES&#xff09;作為一款廣泛應用的開源分布式搜索和分析引擎&#xff0c;長期以來在日志管理領域占據著舉足輕重的地位。然而&#xff0c;隨著技術的不斷發展&a…

學習threejs,使用Texture紋理貼圖,測試repeat重復紋理貼圖

&#x1f468;??? 主頁&#xff1a; gis分享者 &#x1f468;??? 感謝各位大佬 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;??? 收錄于專欄&#xff1a;threejs gis工程師 文章目錄 一、&#x1f340;前言1.1 ??Texture 紋理貼圖1.1.1 ??…

圖像配準及識別

一、圖像配準基礎 圖像配準&#xff0c;聽起來很高大上&#xff0c;其實用大白話來說&#xff0c;就是“讓兩張照片對齊”的技術。想象一下&#xff0c;你有兩張拍得不完全一樣的照片&#xff0c;比如一張是你從正面拍的風景&#xff0c;另一張是從側面拍的同一個地方&#xff…

QT之QML(簡單示例)

需求一&#xff1a;點擊按鈕彈出菜單&#xff0c;并且自定義菜單彈出位置。 mouse.x 和 mouse.y 獲取的是相對于 MouseArea&#xff08;在這個例子中是 Button&#xff09;左上角的局部坐標。如果你想要在鼠標點擊位置顯示 Menu&#xff0c;你需要將這個局部坐標轉換為相對于應…

如何編寫單元測試

一、前言知識 1.開發過程 需求分析->設計->開發->測試->上線 2.測試種類 單元測試(測試模塊編碼)、黑盒測試(測試功能是否滿足需求)、白盒測試(測試程序內部的邏輯結構)、回歸測試(提出的缺陷進行二次驗證)、集成測試(測試主要的業務功能及模塊間的整合性)、系…

LeetCode 解題思路 30(Hot 100)

解題思路&#xff1a; 遞歸參數&#xff1a; 生成括號的對數 n、結果集 result、當前路徑 path、左括號數 open、右括號數 close。遞歸過程&#xff1a; 當當前路徑 path 的長度等于 n * 2 時&#xff0c;說明已經生成有效括號&#xff0c;加入結果集。若左括號數小于 n&…

【Golang】Windows系統鍵鼠空閑監測練習

在本文中&#xff0c;我們將練習如何使用Golang編寫一個簡單的Windows系統空閑時間監測工具。該工具能夠檢測系統的空閑時間&#xff0c;并在達到一定閾值時計數。 功能概述 監控鼠標和鍵盤的空閑事件&#xff0c;每空閑超過50s&#xff0c;觸發次數加一。 該工具具有以下功…

關于React Redux

官網&#xff1a;&#x1f449;詳情一 &#x1f449;詳情二 &#x1f449;關于redux 使用原因&#xff1a;&#x1f449;詳情 /** 2-1、隨著javascript單頁應用程序的發展&#xff0c;需要在代碼中管理更多的狀態&#xff08;包括服務器響應數據、緩存數據、本地創建還未發送…

MySQL和Oracle批量插入SQL差異詳解

文章目錄 MySQL和Oracle批量插入SQL差異詳解1. 基本批量插入語法1.1 MySQL批量插入1.2 Oracle批量插入 2. 帶序列的批量插入2.1 MySQL帶自增ID的批量插入2.2 Oracle帶序列的批量插入 3. 條件批量插入3.1 MySQL條件批量插入3.2 Oracle條件批量插入 MySQL和Oracle批量插入SQL差異…

43頁可編輯PPT | 大數據管理中心設計規劃方案大數據中心組織架構大數據組織管理

這份文檔是一份關于大數據管理中心規劃設計方案的詳細報告&#xff0c;涵蓋了背景與需求分析、整體規劃方案、關鍵能力實現方案以及實施方案等內容。報告強調大數據在城市治理中的重要性&#xff0c;提出通過構建統一的大數據平臺&#xff0c;整合城市各部門數據資源&#xff0…

Python-八股總結

目錄 1 python 垃圾處理機制2 yield3 python 多繼承&#xff0c;兩個父類有同名方法怎么辦&#xff1f;4 python 多線程/多進程/協程4.1 多線程與GIL全局解釋器鎖4.2 多進程4.3 協程 5 樂觀鎖/悲觀鎖6 基本數據結構**1. 列表&#xff08;List&#xff09;****2. 元組&#xff0…

HTML 標簽類型全面介紹

HTML 標簽類型全面介紹 HTML&#xff08;HyperText Markup Language&#xff09;是構建 Web 頁面結構的基礎語言。HTML 由不同類型的標簽組成&#xff0c;每種標簽都有特定的用途。本文將全面介紹 HTML 標簽的分類及其用法。 1. HTML 標簽概述 HTML 標簽通常成對出現&#xf…

vscode中的【粘滯滾動】的基本概念和作用,關閉了以后如何開啟

1、粘滯滾動的基本概念和作用 ?VSCode中的“粘滯”功能主要是指編輯器在滾動時的一種特殊效果&#xff0c;使得編輯器在滾動到某個位置時會“粘”在那里&#xff0c;而不是平滑滾動到底部或頂部。? 粘滯滾動的基本概念和作用 粘滯滾動功能可以讓用戶在滾動時更直觀地看到當前…

【商城實戰(101)】電商未來已來:新技術引領商城發展新航向

【商城實戰】專欄重磅來襲!這是一份專為開發者與電商從業者打造的超詳細指南。從項目基礎搭建,運用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用戶、商品、訂單等核心模塊開發,再到性能優化、安全加固、多端適配,乃至運營推廣策略,102 章內容層層遞進。無論是想…

深度學習Note.5(機器學習.6)

1.Runner類 一個任務應用機器學習方法流程&#xff1a; 數據集構建 模型構建 損失函數定義 優化器 模型訓練 模型評價 模型預測 所以根據以上&#xff0c;我們把機器學習模型基本要素封裝成一個Runner類&#xff08;加上模型保存、模型加載等功能。&#xff09; Runne…

linux服務器專題1------redis的安裝及簡單配置

在 linux上安裝 Redis 可以按照以下步驟進行(此處用Ubuntu 服務器進行講解)&#xff1a; 步驟 1: 更新系統包 打開終端并運行以下命令以確保你的系統是最新的&#xff1a; sudo apt update sudo apt upgrade步驟 2: 安裝 Redis 使用 apt 包管理器安裝 Redis&#xff1a; s…

面試問題總結:qt工程師/c++工程師

C 語言相關問題答案 面試問題總結&#xff1a;qt工程師/c工程師 C 語言相關問題答案 目錄基礎語法與特性內存管理預處理與編譯 C 相關問題答案面向對象編程模板與泛型編程STL 標準模板庫 Qt 相關問題答案Qt 基礎與信號槽機制Qt 界面設計與布局管理Qt 多線程與并發編程 目錄 基礎…

實現實時數據推送:SpringBoot中SSE接口的兩種方法

&#x1f31f; 前言 歡迎來到我的技術小宇宙&#xff01;&#x1f30c; 這里不僅是我記錄技術點滴的后花園&#xff0c;也是我分享學習心得和項目經驗的樂園。&#x1f4da; 無論你是技術小白還是資深大牛&#xff0c;這里總有一些內容能觸動你的好奇心。&#x1f50d; &#x…

LXC 導入多Linux系統

前提要求 ubuntu下安裝lxd 參考Rockylinux下安裝lxd 參考LXC 源替換參考LXC 容器端口發布參考LXC webui 管理<

ES的文檔更新機制

想獲取更多高質量的Java技術文章&#xff1f;歡迎訪問Java技術小館官網&#xff0c;持續更新優質內容&#xff0c;助力技術成長 Java技術小館官網https://www.yuque.com/jtostring ES的文檔更新機制 在現代應用中&#xff0c;數據的動態性越來越強&#xff0c;我們不僅需要快…