SpringCloud——EureKa

目錄

1.前言

1.微服務拆分及遠程調用

3.EureKa注冊中心

遠程調用的問題

eureka原理

搭建EureKaServer

服務注冊

服務發現


1.前言

分布式架構:根據業務功能對系統進行拆分,每個業務模塊作為獨立項目開發,稱為服務。

優點:

  • 降低服務耦合
  • 有利于服務升級和擴展

微服務:是一種經過良好架構設計的分布式架構方案,微服務架構特征

  • 單一職責:微服務拆分粒度更小,每個服務都對應唯一的業務能力,做到單一職責,避免重復業務開發
  • 面向服務:微服務對外暴露業務接口
  • 自治:團隊獨立,技術獨立,數據獨立,部署獨立
  • 隔離性強:服務調用做好隔離,容錯,降級,避免出現級聯問題

微服務技術對比:

SpringCloud

SpringCloud是目前國內使用最廣泛的微服務框架。

SpringCloud集成了各種微服務功能組件,并基于SpringBoot實現了這些組件的自動裝配,從而提供了良好的開箱即用體驗:

1.微服務拆分及遠程調用

微服務拆分注意事項

  • 1.不同微服務,不要重復開發相同業務
  • 2.微服務數據獨立,不要訪問其它微服務的數據庫
  • 3.微服務可以將自己的業務暴露為接口,供其他微服務調用

案列:

需求:根據訂單id查詢訂單的同時,把訂單所屬的用戶信息一起返回

遠程調用方式分析:

1)注冊RestTemplate

在order-service的OrderApplication中注冊RestTemplate

要想實現一次跨服務的調用其實就是發送一次http請求

提供者和消費者:

服務提供者:一次業務中,被其它微服務調用的服務。(提供接口給其它微服務)
服務消費者:一次業務中,調用其它微服務的服務。(調用其它微服務提供的接口)

3.EureKa注冊中心

遠程調用的問題

硬編碼問題

eureka原理

Eureka架構中,微服務角色有兩類:

EureKaServer:服務端,注冊中心

記錄服務信息

心跳監控

EurekaClient:客戶端

消費者如何獲取服務提供者具體信息?

  • 服務提供者啟動時向eureka注冊自己的信息
  • eureka保存這些信息
  • 消費者根據服務名稱向eureka拉取提供者信息

如果有多個服務提供者,消費者如何選擇?

  • 服務消費者利用負載均衡算法,從服務列表中挑選一個

消費者如何感知服務提供者健康狀態?

  • 服務提供者每個30秒向EurekaServer發送心跳請求,報告健康狀態
  • eureka會更新記錄服務列表信息,心跳不正常就會被剔除
  • 消費者就可以拉取到最新的信息

搭建EureKaServer

搭建EureKaServer服務步驟如下:

1.創建項目,引入spring-cloud-starter-netflix-eureka-server的依賴

2.編寫啟動類,添加@EnableEurekaServer注解

3.添加application.yml文件,編寫下面配置

服務注冊

將user-service服務注冊到EurekaServer步驟如下:

1.在user-service項目中引入spring-cloud-starter-netflix-eureka-client的依賴

2.在application.yml文件,編寫下面配置:

如果我們想啟動多個實例,模擬多實例部署,但為了避免端口沖突,需要修改端口設置:

服務發現

服務拉取是基于服務名稱獲取服務列表,然后在對服務列表做負載均衡

1.修改OrderService的代碼,修改訪問url路徑,用服務名代替ip,端口:

2.在order-service項目的啟動類OrderApplication中的RestTemplate添加負載均衡注解:

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

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

相關文章

機頂盒刷機筆記

疑難雜癥解決 hitool線刷網口不通tftp超時--》關閉防火墻cm201-2卡刷所有包提示失敗abort install--》找個卡刷包只刷fastboot分區再卡刷就能通過了(cm201救磚包 (M8273版子)) 刷機工具 海兔燒錄工具HiTool-STB-5.3.12工具,需要…

Linux動靜態庫制作與原理

什么是庫 庫是寫好的現有的,成熟的,可以復用的代碼。現實中每個程序都要依賴很多基礎的底層庫,不可能每個人的代碼都從零開始,因此庫的存在意義非同尋常。 本質上來說庫是一種可執行代碼的二進制形式,可以被操作系統…

如何通過小智AI制作會說話的機器人玩具?

一、硬件準備與組裝 1. 核心硬件選擇 主控芯片:選擇支持無線網絡連接、音頻處理和可編程接口的嵌入式開發板 音頻模塊:配備拾音麥克風與小型揚聲器,確保語音輸入/輸出功能 顯示模塊:選擇適配的交互顯示屏用于可視化反饋 擴展模…

如何控制郵件發送頻率避免打擾用戶

一、用戶行為 監測用戶與郵件的互動數據,如打開率、點擊率下滑或退訂申請增多,可能是發送頻率過高的警示信號。利用郵件營銷平臺的分析工具,識別這些指標的變動趨勢,為調整提供依據。 二、行業特性與受眾差異 不同行業用戶對郵…

定積分的“偶倍奇零”性質及其使用條件

定積分的“偶倍奇零”性質是針對對稱區間上的奇偶函數積分的重要簡化方法。以下是其核心內容和應用要點: ?一、基本性質 ?偶函數(偶倍)? 若 f(x) 在 [?a,a] 上為偶函數(即 f(?x)f(x)),則: …

如何在 Windows 11 或 10 上安裝 Fliqlo 時鐘屏保

了解如何在 Windows 11 或 10 上安裝 Fliqlo,為您的 PC 或筆記本電腦屏幕添加一個翻轉時鐘屏保以顯示時間。 Fliqlo 是一款適用于 Windows 和 macOS 平臺的免費時鐘屏保。它也適用于移動設備,但僅限于 iPhone 和 iPad。Fliqlo 的主要功能是在用戶不活動時在 PC 或筆記本電腦…

【C/C++】C++并發編程:std::async與std::thread深度對比

文章目錄 C并發編程:std::async與std::thread深度對比1 核心設計目的以及區別2 詳細對比分析3 代碼對比示例4 適用場景建議5 總結 C并發編程:std::async與std::thread深度對比 在 C 中,std::async 和 std::thread 都是用于并發編程的工具&am…

Axure疑難雜癥:垂直菜單展開與收回(4大核心問題與專家級解決方案)

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝!如有幫助請訂閱專欄! Axure產品經理精品視頻課已登錄CSDN可點擊學習https://edu.csdn.net/course/detail/40420 課程主題:垂直菜單展開與收回 主要內容:超長菜單實現、展開與收回bug解釋、Axure9版本限制等問題解…

ASIC和FPGA,到底應該選擇哪個?

ASIC和FPGA各有優缺點。 ASIC針對特定需求,具有高性能、低功耗和低成本(在大規模量產時);但設計周期長、成本高、風險大。FPGA則適合快速原型驗證和中小批量應用,開發周期短,靈活性高,適合初創企…

DAY 30 模塊和庫的導入

知識點回顧: 1.導入官方庫的三種手段 2.導入自定義庫/模塊的方式 3.導入庫/模塊的核心邏輯:找到根目錄(python解釋器的目錄和終端的目錄不一致) 作業:自己新建幾個不同路徑文件嘗試下如何導入 import math # 導入…

MyBatis:動態SQL

文章目錄 動態SQLif標簽trim標簽where標簽set標簽foreach標簽include標簽和sql標簽 Mybatis動態SQL的官方文檔: https://mybatis.net.cn/dynamic-sql.html 動態SQL 動態SQL是 MyBatis的強大特性之一,如果是使用JDBC根據不同條件拼接sql很麻煩,例如拼接…

Java - Junit框架

單元測試:針對最小的功能單元(方法),編寫測試代碼對該功能進行正確性測試。 Junit:Java語言實現的單元測試框架,很多開發工具已經集成了Junit框架,如IDEA。 優點 編寫的測試代碼很靈活,可以指某個測試方法…

學生成績管理系統Java實戰(Spring Boot+MyBatis Plus)

文章目錄 一、系統需求分析(避坑指南)二、技術選型(2024新版)三、數據庫設計(三大核心表)1. 學生表(student)2. 課程表(course)3. 成績表(score&a…

MySQL安裝實戰指南:Mac、Windows與Docker全平臺詳解

MySQL作為世界上最流行的開源關系型數據庫,是每位開發者必須掌握的基礎技能。本指南將手把手帶你完成三大平臺的MySQL安裝,從下載到配置,每個步驟都配有詳細說明和截圖,特別適合新手學習。 一、Mac系統安裝MySQL 1.1 通過Homebre…

多模態大語言模型arxiv論文略讀(七十九)

AIM: Let Any Multi-modal Large Language Models Embrace Efficient In-Context Learning ?? 論文標題:AIM: Let Any Multi-modal Large Language Models Embrace Efficient In-Context Learning ?? 論文作者:Jun Gao, Qian Qiao, Ziqiang Cao, Zi…

[Harmony]封裝一個可視化的數據持久化工具

1.添加權限 在module.json5文件中添加權限 // 聲明應用需要請求的權限列表 "requestPermissions": [{"name": "ohos.permission.DISTRIBUTED_DATASYNC", // 權限名稱:分布式數據同步權限"reason": "$string:distrib…

利用html制作簡歷網頁和求職信息網頁

前言 大家好,我是maybe。今天下午初步學習了html的基礎知識。做了兩個小網頁,一個網頁是簡歷網頁,一個網頁是求職信息填寫網頁。跟大家分享一波~ 說明:我不打算上傳圖片。所以如果有朋友按照我的代碼運行網頁,會出現一個沒有圖片…

Vue 3 實現后端 Excel 文件流導出功能(Blob 下載詳解)

💡 本文以告警信息導出為例,介紹 Vue 3 中如何通過 Axios 調用后端接口并處理文件流,實現 Excel 自動下載功能。 📑 目錄 一、前言 二、后端接口說明 三、前端實現思路 四、導出功能完整代碼 五、常見問題處理 六、效果展示 …

HarmonyOS AVPlayer 音頻播放器

鴻蒙文檔中心:使用AVPlayer播放視頻(ArkTS)文檔中心https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/video-playback 這張圖描述的是 HarmonyOS AVPlayer 音頻播放器的狀態流轉過程,展示了 AVPlayer 在不同狀態之間的切換條件和關鍵操作…

Java面試場景:從音視頻到AI應用的技術探討

面試場景:音視頻與AI應用技術的碰撞 在某互聯網大廠的面試中,面試官王先生與求職者明哥展開了一場關于音視頻技術與AI應用的對話。 第一輪提問:音視頻場景 面試官:明哥,你能談談在音視頻場景中,Spring B…