對微服務的了解

微服務是一種架構風格,我們可以把應用程序劃分為一組小型的、松散耦合的服務,
每個服務都運行在自己的進程中,并通過輕量級的通信機制進行通信,
每個服務都是獨立部署、獨立擴展、獨立更新的,從而提高了應用程序的可伸縮性、可維護性和可測試性;
微服務架構本身就是一種分布式架構,它強調的是對部署在各個計算機上的應用服務的粒度;
它的核心思想是,針對拆分的服務節點做更進一步的解耦;拆分的好處是使得程序的擴展性更強,開發迭代效率更高;
微服務中服務調用流程:包括服務注冊、發現、負載均衡、請求調用、容錯處理、響應返回等步驟,依賴注冊中心、網關、容錯組件等。

好處:實現模塊化、獨立部署、技術異構、高可用、分布式協作,提升系統靈活性和可維護性。

以電商系統為例:

  • 用戶下單時,訂單服務通過 OpenFeign 調用庫存服務檢查庫存。
  • 訂單服務從 Nacos 獲取庫存服務的實例列表,使用 Ribbon 選擇一個實例。
  • 請求通過 HTTP 發送到庫存服務,庫存服務扣減庫存并返回結果。
  • 若庫存服務超時,Hystrix 觸發降級,返回默認提示“庫存不足”。

服務熔斷是一種保護機制,當某個微服務調用頻繁失敗或響應過慢時,觸發熔斷器打開,暫時阻止對該服務的后續請求,直接返回預設的錯誤響應 ;

作用:

防止故障擴散:避免因某個服務故障導致調用鏈上的其他服務也受到影響(雪崩效應)。

快速失敗:當服務不可用時,直接返回默認響應,減少客戶端等待時間。

自我恢復:熔斷器會定期嘗試少量請求(半開狀態),若服務恢復則關閉熔斷器,恢復正常調用。工作原理: 熔斷器通常有三種狀態:

關閉:正常狀態,所有請求都嘗試調用目標服務。

打開:如失敗率過高,熔斷器打開,拒絕所有請求,返回默認響應。

半開:經過一段時間,允許少量請求嘗試調用,若成功則關閉熔斷器,否則重新打開。

場景:調用支付服務時,連續多次超時,觸發熔斷器打開,后續請求直接返回“服務不可用”提示,防止進一步調用導致系統過載。

服務降級是指當系統資源緊張或服務不可用時,主動降低服務質量或功能,優先保證核心功能的正常運行,犧牲非核心功能以維持系統整體穩定性;

作用:保障核心功能,提升用戶體驗:通過返回簡化數據或默認響應,避免用戶看到錯誤頁面;

系統穩定性:通過減少資源消耗,防止系統崩潰;

場景:在電商促銷期間,商品詳情頁的推薦服務因流量過高不可用,系統降級為不顯示推薦商品,僅展示商品基本信息。

nacos:提供分布式配置管理、服務注冊與發現,適合動態配置和多環境管理。openFeign+Ribbon:簡化服務調用并提供客戶端負載均衡,適合微服務間通信。

網關:作為統一入口,通過斷言匹配路由規則,通過過濾器處理請求。

?Sentinel:阿里巴巴開源的流量控制和容錯框架,用于微服務架構中的流量治理、熔斷降級和系統保護。

核心功能:流量控制、熔斷降級、熱點限流、系統保護,支持動態規則配置和實時監控。

微服務中的作用:防止服務雪崩、應對流量高峰、提升系統穩定性,簡化容錯開發。

優勢:輕量、靈活、易集成,適合復雜分布式系統。

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

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

相關文章

計算機視覺生物啟發視覺算法:如何模擬人眼與大腦?

計算機視覺生物啟發視覺算法:如何模擬人眼與大腦? 一、前言二、人眼與大腦視覺系統基礎概念?2.1 人眼的生理結構與功能?2.2 大腦視覺皮層的信息處理機制?三、生物啟發視覺算法的核心技術?3.1 視網膜啟發的特征提取算法?3.2 視覺皮層啟發的分層特征學習算法?3.3 注意力機…

stm32使用定時器功能之高精度定時(微秒級)、輸入捕獲以及超聲波測距

一、定時器功能之高精度定時(微秒級) 我們常用的延時函數中無論是HAL_Delay還是vTaskDelay()函數都是毫秒級的定時,我們可以借助定時器實現一個微秒級更高精度的延時函數。這個定時器不會影響FreeRtos的任務切換 這里就是用定時器的計數功能…

Git常用命令摘要

寫這篇博文的目的只是簡單的給自己及團隊的日常工作中需要用到的git命令作個匯總,這樣平時只需要查閱這篇文章就夠了,不用到處查找。如果能給有需要的朋友一點點的幫助,那也算是意外之喜吧。 一、基礎配置 # 設置用戶名和郵箱(首…

ubuntu 22.04 安裝部署kibana 7.10.0詳細教程

安裝部署kibana 7.10.0詳細教程 下載并安裝二、修改kibana.yml文件三、性能配置四、啟動服務驗證五、安裝啟動常見問題 【背景】 整個elk安裝是基于ubuntu 22.04和jdk 11環境。kibana均采用 *.deb方式安裝,需要服務器能聯網。ubuntu 22.04 安裝部署elk(elasticsearc…

nfs 服務器的搭建

nfs 服務器的搭建 1.配置yum源 mkdir /etc/yum.repos.d/bak mv /etc/yum.repo.d/*.repo /etc/yum.repos.d/bak/ curl -o /etc/yum.repos.d/centos.repo http://10.26.210.101/centos/centos.repo # 外網 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.c…

Yii2 基礎版實現 Token 認證 API 服務的完整框架方案

以下是一個基于 Yii2 基礎版實現 Token 認證 API 服務的完整框架方案,包含 JWT 實現和完整代碼: 1. 環境準備 composer create-project --prefer-dist yiisoft/yii2-app-basic yii2-api cd yii2-api2. 安裝必要擴展 composer require firebase/php-jw…

主流版本控制工具Git vs Perforce P4:架構模式、性能、大文件管理及分支管理對比詳解

Git和Perforce P4是兩個強大的源代碼管理工具,各有其獨特的功能優勢與適用場景。 本文中,Perforce中國授權合作伙伴-龍智將從架構設計、性能表現、文件管理及分支策略等維度,為您詳細解析兩者的關鍵差異,幫助您根據團隊需求&…

文件系統2(Linux下)

1 掛載分區 文件系統1中已經知道了能夠根據inode號在指定分區找文件了,也已經能根據目錄文件內容,找指定的inode了,在指定的分區內,就可以對文件進行操作了。但是還有幾個問題,那就是inode是不能跨分區的,…

Leetcode-?2537. 統計好子數組的數目?

Problem: 2537. 統計好子數組的數目 思路 滑動窗口 解題過程 思路: 使用滑動窗口來維護子數組,并通過組合計數動態調整滿足條件的數對數目。具體來說,我們維護一個窗口[l,r],使得窗口內相同元素的對數至少為 k,并計算…

js手寫代碼篇--手寫Object.assign

19、Object.assign 作用: Object.assign的作用是將源對象的所有可枚舉屬性復制到目標對象中。它返回目標對象。 const obj1 { a: 1, b: 2 };const obj2 { b: 3, c: 4 };const obj3 { d: 5 };const target {};Object.assign(target, obj1, obj2, obj3);console…

使用 C/C++ 和 OpenCV 構建智能停車場視覺管理系統

使用 C 和 OpenCV 構建智能停車場視覺管理系統 本文將詳細介紹如何利用 C 和 OpenCV 庫,從零開始創建一個智能停車場管理系統。該系統通過攝像頭捕捉的畫面,能自動完成兩項核心任務: 車位識別:通過檢測地面上的黃色停車線&#…

服務器靜態ip,網關不能占用*.*.*.1

網關不能占用*.*.*.1.1 通常用于運行關鍵服務(如DHCP、NAT、DNS代理),.1 是網絡世界的"VIP包廂",普通用戶強闖只會被"請出"。

自然語言處理【NLP】—— CBOW模型

文章目錄 引言一、CBOW模型概述1.1 什么是CBOW模型1.2 CBOW vs Skip-gram 二、CBOW模型原理詳解2.1 模型架構2.2 數學原理2.3 訓練過程 三、CBOW的PyTorch實現四、CBOW模型的應用與優化4.1 典型應用場景4.2 性能優化技巧 五、CBOW的局限性六、結語 引言 在自然語言處理(NLP)領…

為MTK 9300開發板移植Linux系統(以Debian為例)的詳細技術指南

以下是為MTK 9300開發板移植Linux系統(以Debian為例)的詳細技術指南,涵蓋環境搭建、內核移植、驅動適配(攝像頭/顯示器/WiFi)、系統集成與優化。 MTK 9300開發板Linux系統移植全流程指南 1 項目概述 1.1 硬件平臺 SoC:MediaTek MTK9300 (ARMv8-A架構,4Cortex-A78 + 4C…

Java Lambda 表達式與 Stream API 全解析:從基礎到進階

以下是對您博客內容的優化版本,在保留原有核心內容的基礎上,補充了Lambda表達式及Stream API的完整方法體系,并通過結構化排版和擴展說明提升可讀性。 Java Lambda表達式與Stream API全解析:從基礎到進階 一、Lambda表達式與Str…

Let’s Encrypt(樂此加密) 免費SSL證書申請

一、前言 騰訊云、阿里云等平臺都支持免費的SSL證書申請,但只支持單域名SSL證書申請,不支持泛域名證書申請,而且每年只有20張免費證書額度,自2024年4月25日之起免費申請的證書只有3個月有效期。域名比較多的情況下,更新…

SQLite3 性能優化

在嵌入式開發和輕量級應用場景中,SQLite3 作為輕量級數據庫引擎,憑借其無需獨立服務器、部署便捷等特點被廣泛應用。然而,當面對大量數據的高速讀寫需求時,默認配置下的 SQLite3 性能往往難以滿足要求。本文將從數據庫配置調整、W…

零基礎設計模式——行為型模式 - 狀態模式

第四部分:行為型模式 - 狀態模式 (State Pattern) 我們繼續學習行為型模式,接下來是狀態模式。這個模式允許一個對象在其內部狀態改變時改變它的行為,對象看起來就像是改變了它的類。 核心思想:允許一個對象在其內部狀態改變時改…

面向對象面試題集合

前言 記錄面向對象面試題相關內容,方便復習及查漏補缺 題1.簡述面向對象?主要特征是什么? 面向對象編程(Object-Oriented Programming,簡稱OOP)是一種以“對象”為核心的編程范式,通過將現實…

二十一、【用戶管理與權限 - 篇三】角色管理:前端角色列表與 CRUD 實現

【用戶管理與權限 - 篇三】角色管理:前端角色列表與 CRUD 實現 前言準備工作第一部分:更新 API 服務以包含角色管理第二部分:添加角色管理頁面的路由和側邊欄入口第三部分:實現角色列表頁面第四部分:實現角色表單對話框組件第五部分:全面測試總結前言 一個完善的權限系統…