山東大學軟件學院項目實訓-創新實訓-基于大模型的旅游平臺(二十一)- 微服務(1)

微服務

1.認識微服務

SpringCloud底層是依賴于SpringBoot的,并且有版本的兼容關系,如下:

2. 服務拆分

需求 : 把訂單信息和用戶信息一起返回

從訂單模塊向用戶模塊發起遠程調用 , 把查到的結果一起返回

步驟 :

2.1 注冊RestTemplate

在啟動類中注入RestTemplate

  @MapperScan("cn.itcast.order.mapper")@SpringBootApplicationpublic class OrderApplication {?public static void main(String[] args) {SpringApplication.run(OrderApplication.class, args);}?// 創建RestTemplate對象并注入容器@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}?}

2.2 在訂單業務層 利用RestTemplate發出http請求

  @RestController@RequestMapping("order")public class OrderController {?@Autowiredprivate OrderService orderService;?@Autowiredprivate RestTemplate restTemplate;?@GetMapping("{orderId}")public Order queryOrderByUserId(@PathVariable("orderId") Long orderId) {// 根據id查詢訂單并返回Order order = orderService.queryOrderById(orderId);// 利用RestTemplate發http請求// url路徑String url = "http://localhost:8081/user/" + order.getUserId();// 發送請求User user = restTemplate.getForObject(url, User.class);// 封裝userorder.setUser(user);return order;}}

3. Eureka

3.1 提供者和消費者

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

消費者 : 一次業務中, 調用其他微服務(調用其它微服務的接口)

3.2 Eureka原理分析

3.2.1 Eureka注冊中心

3.2.2搭建Eureka注冊中心

  <!--eureka服務端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>

新建eureka-server模塊

啟動類:

  ?@SpringBootApplication@EnableEurekaServerpublic class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class,args);}}

配置文件 :

  server:port: 10086spring:application:name:eurekaserver ? # 服務名稱eureka:client:service-url:defaultZone: http://localhost:10086/eureka ? # 地址信息

服務注冊:

把user-service注冊到EurekaServer下:

引入依賴

配置user-service的yml文件

  server:port: 8081spring:datasource:url: jdbc:mysql://localhost:3306/cloud_user?useSSL=falseusername: rootpassword: 888888driver-class-name: com.mysql.jdbc.Driverapplication:name: userservice ?# user服務名稱mybatis:type-aliases-package: cn.itcast.user.pojoconfiguration:map-underscore-to-camel-case: truelogging:level:cn.itcast: debugpattern:dateformat: MM-dd HH:mm:ss:SSS?eureka:client:service-url:defaultZone: http://localhost:10086/eureka ? # 地址 信息

服務列表 :

3.2.3 在order-service完成服務拉取

原來的代碼:

  String url = "http://localhost:8081/user/" + order.getUserId();

修改后 :

  String url = "http://userservice/user/" + order.getUserId();

加上負載均衡注解

  @Bean@LoadBalanced ? ?// 標記要被Ribbon攔截處理!public RestTemplate restTemplate(){return new RestTemplate();}

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

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

相關文章

多態(難的起飛)

注意 virtual關鍵字&#xff1a; 1、可以修飾原函數&#xff0c;為了完成虛函數的重寫&#xff0c;滿足多態的條件之一 2、可以菱形繼承中&#xff0c;去完成虛繼承&#xff0c;解決數據冗余和二義性 兩個地方使用了同一個關鍵字&#xff0c;但是它們互相一點關系都沒有 虛函…

JAVASE總結一

1、 2、引用也可以是成員變量&#xff08;實例變量&#xff09;&#xff0c;也可以是局部變量&#xff1b;引用數據類型&#xff0c;引用&#xff0c; 我們是通過引用去訪問JVM堆內存當中的java對象&#xff0c;引用保存了java對象的內存地址&#xff0c;指向了JVM堆內存當中…

ESP32 - Micropython ESP-IDF 雙線教程 脈寬調制(PWM)(1)

ESP32 - Micropython ESP-IDF 雙線教程 脈寬調制&#xff08;PWM&#xff09; PWM 的基本原理PWM 的應用PWM 的優點PWM 的實現方式ESP32-micropython 中的 PWM 功能使用 micropython 控制 PWM 的代碼示例代碼介紹 ESP32-IDF 中的 PWM 功能1. 初始化配置函數2. 引腳綁定函數3. 占…

常見算法200個(5):快速排序(快排)

JS實現快速排序 1.快速排序思路&#xff1a; 選擇數組中的一個值作為基準&#xff0c;將數組中小于該值的數置于該數之前&#xff0c;大于該值的數置于該數之后&#xff0c;接著對該數前后的兩個數組進行重復操作直至排序完成。 2.代碼實現&#xff1a; function quick(arr)…

使用 Snort 進行入侵檢測

使用 Snort 進行入侵檢測 Snort 是一種流行的開源入侵檢測系統。您可以在http://www.snort.org/上獲取它。Snort 分析流量并嘗試檢測和記錄可疑活動。Snort 還能夠根據其所做的分析發送警報。 Snort 安裝 在本課中&#xff0c;我們將從源代碼安裝。此外&#xff0c;我們不會安…

2024 前端面試每日1小時

三日 1. 如何理解Vue的模板編譯原理 Vue的模板編譯實際就是將模板字符串通過解析、優化和代碼生成等步驟轉換為渲染函數的過程。這個過程中&#xff0c;AST扮演了非常重要的角色&#xff0c;它用樹形結構描述了模板的內容和結構&#xff0c;是編譯過程的核心數據結構&#xff…

MySQL——適合不適合創建索引的情況

那些情況適合創建索引 1、字段的數值具有唯一性的限制 索引本身可以起到約束的作用&#xff0c;比如唯一索引、主鍵索引都是可以起到唯一性約束的&#xff0c;因此在我們的數據表中&#xff0c;如果某個字段是唯一性的&#xff0c;就可以直接創建唯一性索引&#xff0c;或者主…

Nodejs 爬蟲 案例

1.安裝&#xff1a; npm install cheerio npm install axios2.介紹&#xff1a; 2.1 cheerio 特點和用途描述&#xff1a; HTML解析和操作&#xff1a;Cheerio 可以將 HTML 字符串加載到內存中&#xff0c;并將其轉換為一個可操作的 DOM 樹結構&#xff0c;從而可以方便地對…

AURIX TC3xx單片機介紹-啟動過程介紹1

從各個域控制器硬件解決方案來看,MPU可能來自多個供應商,有瑞薩,有NXP等,但對于MCU來說,基本都采用英飛凌TC3xx。 今天我們就來看一下TC3xx的啟動過程,主要包含如下內容: uC上電過程中,會經過一個上電時序,從復位狀態“脫離”出來;Boot Firmware是復位后第一個執行的…

使用 Effect 同步-09

有些組件需要與外部系統同步。例如&#xff0c;你可能希望根據 React state 控制非 React 組件、設置服務器連接或在組件出現在屏幕上時發送分析日志。Effects 會在渲染后運行一些代碼&#xff0c;以便可以將組件與 React 之外的某些系統同步。 簡單理解&#xff0c;就是需要操…

Python實現對Word文檔內容出現“重復標題”進行自動去重(4)

前言 本文是該專欄的第4篇,后面會持續分享Python辦公自動化干貨知識,記得關注。 在本專欄上一篇文章《Python實現對Word文檔內容出現“重復標題”進行自動去重(3)》中,筆者有詳細介紹使用python對word文檔內容的目標文本進行自動去重。只不過本文要介紹的“去重方法”與上…

計算機專業必考之計算機指令設計格式

計算機指令設計格式 例題&#xff1a; 1.設相對尋址的轉移指令占3個字節&#xff0c;第一字節為操作碼&#xff0c;第二&#xff0c;第三字節為相對偏移量&#xff0c; 數據在存儲器以低地址為字地址的存放方式。 每當CPU從存儲器取出一個字節時候&#xff0c;自動完成&…

正點原子[第二期]Linux之ARM(MX6U)裸機篇學習筆記-24.1,2 SPI驅動實驗-SPI協議介紹

前言&#xff1a; 本文是根據嗶哩嗶哩網站上“正點原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸機篇”視頻的學習筆記&#xff0c;在這里會記錄下正點原子 I.MX6ULL 開發板的配套視頻教程所作的實驗和學習筆記內容。本文大量引用了正點原子教學視頻和鏈接中的內容。…

計算機組成原理易混淆知識點總結(持續更新)

目錄 1.機器字長&#xff0c;存儲字長與指令字長 2.指令周期,機器周期,時鐘周期 3.CPI,IPS,MIPS 4.翻譯程序和匯編程序 5.計算機體系結構和計算機組成的區別和聯系 6.基準程序執行得越快說明機器的性能越好嗎? 1.機器字長&#xff0c;存儲字長與指令字長 不同的機器三者…

AI智能體|扣子Coze文生圖功能接入微信公眾號

大家好&#xff0c;我是無界生長。 AI智能體&#xff5c;扣子Coze文生圖功能接入微信公眾號本文分享了如何將Coze平臺的文生圖功能接入微信公眾號的詳細操作流程&#xff0c;包括創建圖像流、創建并配置Bot、設置提示詞和開場白、調試、發布等步驟。如果看完還沒學會的話&…

網頁圖片加載慢的求解指南

網頁/圖片加載慢的求解指南 一、前言與問題描述 今天剛換上華為的HUAWEI AX3 Pro New&#xff0c;連上WIFI后測速雖然比平時慢&#xff0c;但是也不算太離譜&#xff0c;如下圖所示&#xff1a; 估計讀者們有也和作者一樣&#xff0c;還沒意識到事情的嚴重性&#x1f601;。 …

08Django項目--用戶管理系統--查(前后端)

對應視頻鏈接點擊直達 TOC 一些朋友加我Q反饋&#xff0c;希望有每個階段的完整項目代碼&#xff0c;那從今天開始&#xff0c;我會上傳完整的項目代碼。 用戶管理&#xff0c;簡而言之就是用戶的增刪改查。 08項目點擊下載&#xff0c;可直接運行&#xff08;含數據庫&…

PHP框架 Laravel

現在因為公司需求&#xff0c;需要新開一個Laravel框架的項目&#xff0c;毫無疑問&#xff0c;我又被借調過去了&#xff0c;最近老是被借調&#xff0c;有點陰郁&#xff0c;不過反觀來看&#xff0c;這也是好事&#xff0c;又可以復習和鞏固一下自己的知識點&#xff0c;接下…

大數據開發面試題【Spark篇】

115、Spark的任務執行流程 driver和executor&#xff0c;結構式一主多從模式&#xff0c; driver&#xff1a;spark的驅動節點&#xff0c;用于執行spark任務中的main方法&#xff0c;負責實際代碼的執行工作&#xff1b;主要負責&#xff1a;將代碼邏輯轉換為任務、在executo…

編譯qt5.15.2(mac/windows)的mysql驅動(附帶編譯好的文件)

文章目錄 0 背景1 編譯過程2 福利 0 背景 因為需要連接到mysql數據庫&#xff0c;所以需要連mysql驅動。 1 編譯過程 1&#xff0c;打開文件/Users/mac/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/sqldrivers.pro&#xff0c;注釋掉QMAKE_USE mysql&#xff1b; 如…