B082-SpringCloud-Eureka

目錄

      • 微服務架構與springcloud
        • 架構演變
        • 為什么使用微服務
        • 微服務的通訊方式
        • 架構的選擇
        • springcloud概述
        • 場景模擬之基礎架構的搭建
        • 模擬微服務之間的服務調用
        • 目前遠程調用的問題
      • eureka
        • 注冊中心的作用
        • 注冊中心的實現
        • 服務提供者注冊到注冊中心

springcloud基于springboot

微服務架構與springcloud

架構演變

1.一個單體項目
缺點:大型項目文件太多體積太大,維護難,編譯難,測試難,一個tomcat不夠用
在這里插入圖片描述
2.集群部署單體項目(多做幾個,做的都是同樣的事情)
只能解決上述第4個問題,前三個問題更復雜,如改代碼要同步改整個集群
新出現問題:不是所有功能用的人都很多,不同的功能需要集群的數量不一致
在這里插入圖片描述
3.根據功能把項目分開,把單獨的模塊拆成項目
可以解決不同功能需要集群數量不一致的問題和剩下的前3個問題
新出現問題:服務之間的通信,jar之間的相互依賴
在這里插入圖片描述
4.最后用上springcloud管理微服務
在這里插入圖片描述

為什么使用微服務

一個項目/系統中各個模塊的壓力
壓力大的模塊做集群分擔壓力
在這里插入圖片描述
其他見文檔2.1.1,2.1.2,2.2.1,2.2.2

微服務的通訊方式

見文檔2.2.3

架構的選擇

見文檔2.3

微服務是一種思想,是一種架構模式
springcloud是微服務的一種落地方案

見文檔2.4

springcloud主要用來解決微服務之間通信的一系列問題

springcloud概述

見文檔3

場景模擬之基礎架構的搭建

不同的項目不同的端口
建立一個公共項目用來存放其他項目共同用到的類,然后給其他項目依賴,如user-common中的domain,query,user等
在這里插入圖片描述
新建maven項目D082-springcloud-parent,tips:不要用下劃線
刪除src

新建maven模塊user-common

新建maven模塊user-provider-4010

新建maven模塊user-consumer-5010

user-common的pom中引入lombok,刷新依賴,建立User類

生產者和消費者兩個項目的pom中各自引入user-common,刷新依賴,新建UserController,使用依賴過來的User類

模擬微服務之間的服務調用

tips:隱藏不需要關心的.idea和.iml文件
設置 - 編輯器 - 文件類型 - 忽略文件和文件夾中追加* .idea;* .iml;

父級pom引入相關依賴

生產者和消費者兩個項目的pom中各自引入web和test依賴,新建application.yml,配置端口,新建啟動類

改造生產者的UserController,
啟動生產者項目,瀏覽器訪問:http://localhost:4010/user/provider/1

消費者中新建config.HttpUtils,把RestTemplate交給容器管理
新建UserController,
啟動生產者和消費者兩個項目,瀏覽器訪問:http://localhost:5010/user/consumer/2

目前遠程調用的問題

在這里插入圖片描述
如消費者URL中的ip目前是localhost,上線后會變化
上線后如果提供者機器掛了重開一臺機器,消費者記的還是以前的provider的地址
消費者不知道提供者機器的狀態,是否健康,是否掛了
提供者只有一臺機器,掛了就都沒了
這種模式進行提供者集群后,消費者難以實現負載均衡

負責均衡:實時知道集群中有多少機器,哪些機器可用,哪些機器不可用,不給不可用機器發請求

eureka

注冊中心的作用

見文檔5.1
在這里插入圖片描述

注冊中心的實現

springcloud是基于springboot的,所以選擇版本要對應

新建工程eureka-server-1010

導入相關依賴

<!--springboot支持-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId>
</dependency><!--Eureka服務端支持-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

新建application.yml,配置參數

server:port: 1010
eureka:instance:hostname: localhostclient:registerWithEureka: false #是否要注冊到eurekafetchRegistry: false #表示是否從Eureka Server獲取注冊信息serviceUrl:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #單機配置

新建啟動類EurekaApp

@SpringBootApplication
@EnableEurekaServer
public class EurekaApp {public static void main(String[] args) {SpringApplication.run(EurekaApp.class);}
}

啟動項目,瀏覽器訪問:http://localhost:1010

服務提供者注冊到注冊中心

生產者項目引入euraka-client依賴

 	<!--eureka客戶端支持 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>

application.yml加入相關參數

server:port: 4010
spring:application:name: user-provider
eureka:client:service-url:defaultZone: http://localhost:1010/eureka

啟動類加入euraka客戶端注解

@SpringBootApplication
@EnableEurekaClient //表示是eureka的客戶端
public class App {public static void main(String[] args) {SpringApplication.run(App.class,args);}
}

瀏覽器訪問:http://localhost:1010,可看到注冊進來的 USER-PROVIDER

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

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

相關文章

10 計算機結構

馮諾依曼體系結構 馮諾依曼體系結構&#xff0c;也被稱為普林斯頓結構&#xff0c;是一種計算機架構&#xff0c;其核心特點包括將程序指令存儲和數據存儲合并在一起的存儲器結構&#xff0c;程序指令和數據的寬度相同&#xff0c;通常都是16位或32位 我們常見的計算機,筆記本…

在Centos7中用Docker部署gitlab-ce

一、介紹 GitLab Community Edition (GitLab CE) 是一個開源的版本控制系統和協作平臺&#xff0c;用于管理和追蹤軟件開發項目。它提供了一套完整的工具和功能&#xff0c;包括代碼托管、版本控制、問題跟蹤、持續集成、持續交付和協作功能&#xff0c;使團隊能夠更加高效地進…

動態規劃|【路徑問題】|931.下降路徑最小和

目錄 題目 題目解析 思路 1.狀態表示 2.狀態轉移方程 3.初始化 4.填表順序 5.返回值 代碼 題目 931. 下降路徑最小和 給你一個 n x n 的 方形 整數數組 matrix &#xff0c;請你找出并返回通過 matrix 的下降路徑 的 最小和 。 下降路徑 可以從第一行中的任何元素開…

【Vue3】Props的使用詳解

&#x1f497;&#x1f497;&#x1f497;歡迎來到我的博客&#xff0c;你將找到有關如何使用技術解決問題的文章&#xff0c;也會找到某個技術的學習路線。無論你是何種職業&#xff0c;我都希望我的博客對你有所幫助。最后不要忘記訂閱我的博客以獲取最新文章&#xff0c;也歡…

概率基礎——多元正態分布

概率基礎——多元正態分布 介紹 多元正態分布是統計學中一種重要的多維概率分布&#xff0c;描述了多個隨機變量的聯合分布。在多元正態分布中&#xff0c;每個隨機變量都服從正態分布&#xff0c;且不同隨機變量之間可能存在相關性。本文將以二元標準正態分布為例&#xff0…

多線程JUC 第2季 中斷線程

一 中斷線程 1.1 中斷概念 1.在java中&#xff0c;沒有提供一種立即停止一條線程。但卻給了停止線程的協商機制-中斷。 中斷是一種協商機制。中斷的過程完全需要程序員自己實現。也即&#xff0c;如果要中斷一個線程&#xff0c;你需要手動調用該線程的interrupt()方法&…

錄制用戶操作實現自動化任務

先上視頻&#xff01;&#xff01; 流程自動化工具-錄制操作繪制流程 這個想法之前就有了&#xff0c;趁著周末時間給它擼出來。 實現思路 從之前的文章自動化桌面未來展望中已經驗證了錄制繪制流程圖的可行性。基于DOM錄制頁面操作軌跡的思路監聽頁面點擊、輸入事件即可&…

無人機鏡頭穩定的原理和相關算法

無人機的鏡頭穩定主要基于兩個關鍵技術&#xff1a;鏡頭平衡技術和實時電子穩像。無人機鏡頭穩定的原理和相關算法主要是通過鏡頭平衡技術和實時電子穩像技術來保持攝像鏡頭的穩定性&#xff0c;從而拍攝出清晰、穩定的畫面。無人機鏡頭穩定的原理主要是通過傳感器和算法來實現…

Ocr之PaddleOcr模型訓練

目錄 一、系統環境 1 鏡像拉取ppocr 進行部署 2 安裝paddlepaddle 二、訓練前的準備 1 下載源碼 2 預模型下載 3 修改模型訓練文件yml 4 編排訓練集 5 執行腳本進行訓練 6 需要修改文件夾名稱 三、開始訓練 1 執行訓練命令 2 對第一次評估進行解釋 3 引言 五、總…

NestJS使用模板引擎ejs

模板引擎? 模板引擎是一種用于生成動態內容的工具&#xff0c;它通過將預定義的模板與特定數據結合&#xff0c;來生成最終的輸出。? 在NodeJS開發中&#xff0c;我們會使用模板引擎來渲染一些常用的頁面&#xff0c;比如渲染代表404的Not Found 頁面&#xff0c;502的Bad …

異常值檢測-值域法 頭歌代碼解釋

這關做得不是很明白&#xff0c;如果有清楚的同志可以在評論區里面討論 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.neighbors import LocalOutlierFactor # 導入數據 abc pd.read_csv(deaths.csv) ## 只分析其中的Population和L…

C語言對類型的轉換

C語言對類型的轉換 文章目錄 C語言對類型的轉換整形提升和截斷整形提升整形提升規則整形提升的意義 截斷截斷規則 算數轉換 我們都知道&#xff0c;C語言中內置了多種整形類型&#xff0c;占用空間從大到小&#xff0c;基本滿足各類使用場景&#xff08;比如超長數字的運算就不…

【【C語言簡單小題學習-1】】

實現九九乘法表 // 輸出乘法口訣表 int main() {int i 0;int j 0;for (i 1; i < 9; i){for (j 1; j < i;j)printf("%d*%d%d ", i , j, i*j);printf("\n"); }return 0; }猜數字的游戲設計 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdi…

源碼視角,vue3為什么推薦用ref,而不是reactive

ref 和 reactive 是 Vue3 中實現響應式數據的核心 API。ref 用于包裝基本數據類型&#xff0c;而 reactive 用于處理對象和數組。盡管 reactive 似乎更適合處理對象&#xff0c;但 Vue3 官方文檔更推薦使用 ref。 我的想法&#xff0c;ref就是比reactive好用&#xff0c;官方也…

Java 中對包含關系的判斷

本文將為您詳細講解 Java 中對包含關系的判斷&#xff0c;包括數組、字符串等&#xff0c;并提供相應的代碼例子。 1. 數組包含關系判斷 在 Java 中&#xff0c;數組包含關系判斷通常使用循環來實現。以下是幾種常見的判斷方法&#xff1a; 示例 1&#xff1a;使用 for…

Unity曲柄滑塊四桿機構運動計算

一、運動效果 二、機構的介紹 曲柄長度&#xff1a;a&#xff0c;線段AB長度 連桿長度&#xff1a;b&#xff0c;線段BC長度 偏心距離&#xff1a;e&#xff0c;滑塊軌跡與曲柄中心點A的垂直距離 三、已知點A點B和e的值&#xff0c;計算C點的位置 1、計算s的值 var h math.…

通過多進程并發方式(fork)實現服務器(注意要回收子進程)

以下內容為視頻學習記錄。 1、父進程accept后返回的文件描述符為cfd以及用于創建連接的lfd; 調用fork()創建子進程后&#xff0c;子進程繼承cfd,lfd&#xff0c;通過該cfd與連接過來的客戶端通信,lfd對子進程來說沒用&#xff0c;可以直接close(lfd); 對于父進程來說&#x…

雙非二本找實習前的準備day4

學習目標&#xff1a; 每天2-3到簡單sql&#xff08;刷完即止&#xff09;&#xff0c;每天復習代碼隨想錄上的題目3道算法&#xff08;時間充足可以繼續&#xff09;&#xff0c;背誦的八股的問題也在這里記錄了 今日碎碎念&#xff1a; 1&#xff09;偶爾還是貪玩游戲&…

Vue中的計算屬性和方法有什么區別?

Vue.js是一款流行的JavaScript前端框架&#xff0c;提供了豐富的功能和便捷的開發方式。在Vue中&#xff0c;計算屬性和方法是常用的兩種方式來處理數據和邏輯。但它們之間存在一些區別&#xff0c;本文將詳細介紹Vue中計算屬性和方法的區別&#xff0c;并通過示例代碼加深理解…

183896-00-6,Biotin-C3-PEG3-C3-NH2,可以選擇性降解靶蛋白

您好&#xff0c;歡迎來到新研之家 文章關鍵詞&#xff1a;183896-00-6&#xff0c;Biotin-C3-PEG3-C3-NH2&#xff0c;Biotin-C3-PEG3-C3-amine&#xff0c;生物素-C3-PEG3-C3-胺 一、基本信息 【產品簡介】&#xff1a;Biotin-PEG3-C3-NH2是一種PROTAC linker&#xff0c;…