【SpringCloud】微服務架構設計模式

一、聚合氣微服務設計模式

最常見、最簡單的設計模式,效果如圖所示:?

聚合器調用多個服務實現應用程序所需的功能?

它可以是一個簡單的?Web?頁面,將檢索到的數據進行處理并展示,也可以是一個更高層次的組合微服務,對檢索到的數據增加業務邏輯后進一步發布成一個新的微服務,這符合?DRY?原則?

另外,每個服務都有自己的緩存和數據庫系統?

如果聚合器是一個組合服務,那么它也有自己的緩存和數據庫?

二、代理微服務設計模式

這是聚合模式的一個變種,如圖所示:

在這種情況下,客戶端并不聚合數據,但會根據業務需求的差別調用不同的微服務?

代理僅僅可以委派請求,也可以進行數據轉換工作?

每個微服務都有自己獨立地緩存和數據庫系統,彼此獨立?

三、鏈式微服務設計模式

這種模式在接收到請求后會產生一個經過合并的響應,如圖所示:?

Load?Balancer?到?Service?A?的線只有單向,如圖一,此處為繪畫錯誤

在這種情況下,服務?A?接收到請求后會與服務?B?進行通信,類似地,服務?B?會同服務?C?進行通信?

所有服務都使用同步消息傳遞?

在整個鏈式調用完成之前,客戶端會一直阻塞?

因此,服務調用鏈不宜過長,以免客戶端長時間等待?

四、分支微服務設計模式

這種模式是聚合器模式的擴展,允許同時調用兩個微服務鏈,如圖所示:?

Load?Balancer?到?Service?A?的線只有單向,如圖一,此處為繪畫錯誤

每個調用鏈分別調用自己的服務?

當某個調用出現問題時,互相之間不是造成影響

五、數據共享微服務設計模式

自治是微服務的設計模式之一,也就是說微服務是全棧式服務?

但在重構現有的 “單體應用(monolithic?application)” 時,SQL?數據庫反規范化可能會導致數據重復和不一致?

因此,在單體應用到微服務架構的過渡階段,可以使用這種設計模式。如圖所示:?

Load?Balancer?到?Service?A?的線只有單向,如圖一,此處為繪畫錯誤?

在這種情況下,部分微服務可能會共享緩存和數據庫存儲?

不過,這只有在兩個服務之間存在強耦合關系才可以?

對于基于微服務的新建應用程序而言,這是一種反模式?

六、異步消息傳遞微服務設計模式

雖然?RESTful?設計模式非常流行,但它是同步的,會造成阻塞?

因此部分基于微服務的架構可能會選擇使用消息隊列代替?RESTful?請求 / 響應,如圖所示:?

各個服務之間通過異步的消息隊列進行交互,當服務出現問題時,不會造成阻塞,隊列會幫忙緩存消息,直到消息服務開始工作?

參考資料:《微服務架構實戰》——?張鋒

一? 葉? 知? 秋,奧? 妙? 玄? 心?

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

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

相關文章

記錄ruoyi-plus-vue部署的問題

ruoyi-vue-plus5.x 后端 ruoyi-vue-plus5.x 前端 前端本地啟動命令 # 克隆項目 git clone https://gitee.com/JavaLionLi/plus-ui.git# 安裝依賴 npm install --registryhttps://registry.npmmirror.com# 啟動服務 npm run dev# 構建生產環境 yarn build:prod # 前端訪問地址…

[C++歷練之路]vector的介紹以及底層模擬實現

W...Y的主頁 😊 代碼倉庫分享 💕 🍔前言: 我們學習了STL中的string以及其所有重要接口并進行了模擬實現,但是STL中包含的內容不止于此。學習了string之后繼續學習STL中的vector,學習成本會大大降低&#…

產品經理面試必看!To B和To C產品的隱秘差異,你了解多少?

大家好,我是小米,一位對技術充滿熱情的產品經理。最近在和小伙伴們交流中發現一個熱門話題:To B(面向企業)和To C(面向消費者)的產品經理究竟有何異同?這可是我們產品經理面試中的經…

互動直播項目 之 靜音邏輯 梳理

目錄 一、老師靜音學生 1、主播點擊聲音按鈕后 2、主進程收到后,調用接口,通知給學生

【LeetCode】374. 猜數字大小

374. 猜數字大小 難度:簡單 題目 猜數字游戲的規則如下: 每輪游戲,我都會從 1 到 n 隨機選擇一個數字。 請你猜選出的是哪個數字。如果你猜錯了,我會告訴你,你猜測的數字比我選出的數字是大了還是小了。 你可以通…

FFmpeg常用命令講解及實戰二

文章目錄 前言一、ffmpeg 常用命令1、ffmpeg 的封裝轉換2、ffmpeg 的編轉碼3、ffmpeg 的基本編轉碼原理 二、ffprobe 常用參數1、show_format2、show_frames3、show_streams4、print_format5、select_streams 三、ffplay 的常用命令1、ffplay 常用參數2、ffplay 高級參數3、ffp…

【附代碼】判斷線段是否相交算法(Python,C++)

【附代碼】判斷線段是否相交算法(Python,C) 文章目錄 【附代碼】判斷線段是否相交算法(Python,C)相關文獻測試電腦配置基礎向量旋轉向量縮放向量投影推導 點乘定義推導幾何意義 叉乘定義推導幾何意義 判斷線…

四數之和java版

題目描述 給定一個包含 n 個整數的數組 nums 和一個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d ,使得 a b c d 的值與 target 相等?找出所有滿足條件且不重復的四元組。 注意:答案中不可以…

物流實時數倉:數倉搭建(ODS)

系列文章目錄 物流實時數倉:采集通道搭建 物流實時數倉:數倉搭建 文章目錄 系列文章目錄前言一、IDEA環境準備1.pom.xml2.目錄創建 二、代碼編寫1.log4j.properties2.CreateEnvUtil.java3.KafkaUtil.java4.OdsApp.java 三、代碼測試總結 前言 現在我們…

信息系統項目管理師-質量管理論文提綱

快速導航 1.信息系統項目管理師-項目整合管理 2.信息系統項目管理師-項目范圍管理 3.信息系統項目管理師-項目進度管理 4.信息系統項目管理師-項目成本管理 5.信息系統項目管理師-項目質量管理 6.信息系統項目管理師-項目資源管理 7.信息系統項目管理師-項目溝通管理 8.信息系…

當內容創作進入 AGI 時代,你也可以成為「神筆馬良」

我神筆馬良的童話故事我們或多或少都聽過,一支神筆在手,想畫什么就能畫出什么,栩栩如生。創造者的理解力、想象力和創作力都能通過這支神筆釋放。 近一年,隨著 AIGC 內容生產工具的快速出圈,有人把 Stable Diffusion、…

Sublime Text 4168最新代碼編輯

Sublime Text是一款功能強大的文本編輯器,具有以下主要功能: 支持多種編程語言的語法高亮和代碼自動完成功能,包括Python、JavaScript、HTML、CSS等。提供代碼片段(Snippet)功能,可以將常用的代碼片段保存…

JSP EL 算數運算符邏輯運算符

除了 empty 我們這邊還有一些基本的運算符 第一種 等等于 jsp代碼如下 <% page contentType"text/html; charsetUTF-8" pageEncoding"UTF-8" %> <%request.setCharacterEncoding("UTF-8");%> <!DOCTYPE html> <html> …

JVM-基礎

jdk7及以前&#xff1a; 通過-XX:PermSize 來設置永久代初始分配空間&#xff0c;默認值是20.75m -XX:MaxPermSize來設定永久代最大可分配空間&#xff0c;32位是64m&#xff0c;64位是82m jdk8及之后&#xff1a; 通過-XX:MetaspaceSize 來設置永久代初始分配空間&#xff…

概要設計文檔案例分享

1引言 1.1編寫目的 1.2項目背景 1.3參考資料 2系統總體設計 2.1整體架構 2.2整體功能架構 2.3整體技術架構 2.4運行環境設計 2.5設計目標 3系統功能模塊設計 3.1個人辦公 4性能設計 4.1響應時間 4.2并發用戶數 5接口設計 5.1接口設計原則 5.2接口實現方式 6運行設計 6.1運行模塊…

GZ031 應用軟件系統開發賽題第4套

2023年全國職業院校技能大賽 應用軟件系統開發賽項&#xff08;高職組&#xff09; 賽題第4套 工位號&#xff1a; 2023年4月 競賽說明 一、項目背景 黨的二十大報告指出&#xff0c;要加快建設制造強國、數字中國&#xff0c;推動制造業高端化、智能化、…

骨傳導耳機的優缺點都有哪些?骨傳導耳機值得入手嗎?

骨傳導耳機的優點還是很多的&#xff0c;相比于傳統耳機&#xff0c;骨傳導耳機要更值得入手&#xff01; 下面讓我們了解下骨傳導耳機的優缺點都有哪些&#xff1a; 一、優點 1、使用更安全 傳統的耳機&#xff0c;在使用時會聽不到外界的聲音&#xff0c;而骨傳導耳機通過…

“java.lang.IllegalStateException: No ConfigurableListableBeanFactory set“,缺少配置

一、錯誤分析 做品優購項目的運營商安全登錄時&#xff0c;運行項目后&#xff0c;瀏覽器訪問模板頁&#xff0c;模板頁的表格無法正常顯示&#xff0c;報錯信息如下&#xff1a; SEVERE: StandardWrapper.Throwable java.lang.IllegalStateException: No ConfigurableLista…

Java視頻流處理技術分享

引言 在現代互聯網時代&#xff0c;視頻流處理成為了許多應用的重要組成部分。無論是實時視頻聊天、在線直播還是視頻會議&#xff0c;都需要高效的視頻流處理技術來保證用戶體驗。Java作為一種強大的編程語言&#xff0c;也在視頻流處理領域發揮著重要的作用。本文將深入探討…

Linux 6.7全面改進x86 CPU微碼加載方式

導讀最近&#xff0c;社區在清理 Linux 上的 Intel/AMD x86 CPU 微代碼加載方面做了大量的工作&#xff0c;這些工作現已合并到 Linux 6.7 中。 由于在啟動時加載 CPU 微代碼對于減少不斷出現的新 CPU 安全漏洞以及有時解決功能問題非常重要&#xff0c;Thomas Gleixner 最近開…