【黑馬 微服務面試篇】

分布式事務

cap定理-Availability

image-20250424211345100

image-20250424212308607

CAP定理-Partition tolerance

image-20250424213159648

BASE理論

BASE理論是對CAP的一種解決思路,包含三個思想:
BasicallyAvailable(基本可用):分布式系統在出現故障時,允許損失部分可用性,即保證核心可用。
SoftState(軟狀態):在一定時間內,允許出現中間狀態,比如臨時的不一致狀態。
EventuallyConsistent(最終一致性):雖然無法保證強一致性,但是在軟狀態結束后,最終達到數據一致。

而分布式事務最大的問題是各個子事務的一致性問題,因此可以借鑒CAP定理和BASE理論:
·CP模式:各個子事務執行后互相等待,同時提交,同時回滾,達成強一致。但事務等待過程中,處于弱可用狀態。
·AP模式:各子事務分別執行和提交,允許出現結果不一致,然后采用彌補措施恢復數據即可,實現最終一致。

AT模式的臟寫問題

AT模式原理

image-20250424214352293

image-20250424215550463

AT模式的寫隔離

image-20250424221050569

image-20250424221446350

TCC模式

TCC模式與AT模式非常相似,每階段都是獨立事務,不同的是TCC通過人工編碼來實現數據恢復。需要實現三個方法:
·Ty:資源的檢測和預留;
·Confirm:完成資源操作業務;要求Ty成功Confirm一定要能成功。
·Cancel:預留資源釋放,可以理解為try的反向操作。

image-20250425120732328

image-20250425121431252

TCC模式的每個階段是做什么的?
·Ty:資源檢查和預留
·Confirm:業務執行和提交
Cancel:預留資源的釋放
TCC的優點是什么?
一階段完成直接提交事務,釋放數據庫資源,性能好
,相比AT模型,無需生成快照,無需使用全局鎖,性能最強
不依賴數據庫事務,而是依賴補償操作,可以用于非事務型數據庫
TCC的缺點是什么?
有代碼侵入,需要人為編寫try、Confirm和Cance接口,太麻煩
軟狀態,事務是最終一致
需要考慮Confirm和Cancel的失敗情況,做好冪等處理

最大努力通知

image-20250425124709762

注冊中心

環境隔離

image-20250425125153579

image-20250425125303861

image-20250425125811140

分級模型

image-20250425130857455

image-20250425131426462

Eureka與Nacos

image-20250425133308810

image-20250425134015302

遠程調用

負載均衡原理

image-20250425134745469

image-20250425184927782

image-20250425185104375

切換負載均衡算法

image-20250425192007778

服務保護

image-20250425194759148

Sentinel的線程隔離與Hystix的線程隔離有什么差別?

問題說明:考察對線程隔離方案的掌握情況
難易程度:一般
參考話術:
答:線程隔離可以采用線程池隔離或者信號量隔離。
HySx默認是基于線程池實現的線程隔離,每一個被隔離的業務都要創建一個獨立的線程池,線程過多會帶來額外的
CPU開銷,性能一般,但是隔離性更強。
Sentinell則是基于信號量隔離的原理,這種方式不用創建線程池,性能較好,但是隔離性一般。

滑動窗口計數器算法

固定窗口計數器算法

當在第4到第5秒的時候來了3個請求,在第5到第6秒的時候來了3個請求,都可以被放行,

但是有一種情況是這樣子的,4-5的這3個請求發生在4500毫秒到5000毫秒之間,5000-6000毫秒的這3個請求發生在5000-5500毫秒之間,相當于1秒鐘來了6個請求,超出了閾值!!!

相當于早上吃3個包子,中午吃3個包子,晚上吃3個包子,變成了一下吃9個,吃不下…

image-20250425203013972

滑動窗口計數器算法

image-20250425201222346

漏桶算法

image-20250425204300154

image-20250425204405557

image-20250425204742819

令牌通算法

image-20250425210206661

Sentinel的限流與Gateway的限流有什么差別?

問題說明:考察對限流算法的掌握情況
難易程度:難
參考話術:

限流算法常見的有三種實現:滑動時間窗口、令牌桶算法、漏桶算法。Gateway!則采用了基于Redis3實現的令牌桶算法

而Sentinel內部卻比較復雜
默認限流模式是基于滑動時間窗口算法,另外Sentinel中斷路器的計數也是基于滑動時間窗口算法
限流后可以快速失敗和排隊等待,其中排隊等待基于漏桶算法
而熱點參數限流則是基于令牌桶算法

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

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

相關文章

實時數倉體系概覽與架構演進

? 引言:為什么我們離不開“實時” 曾經的你可能會認為“數據分析一天一更,夠用了”。但當你所在的公司遇上這些情況: 用戶在投放廣告后5分鐘內就想知道轉化效果 風控平臺必須秒級判斷是否攔截訂單 新產品上線后一小時就需調整推薦算法策略…

基于Matlab的車牌識別系統

1.程序簡介 本模型基于MATLAB,通過編程創建GUI界面,基于Matlab的數字圖像處理,對靜止的車牌圖像進行分割并識別,通過編寫matlab程序對圖像進行灰度處理、二值化、腐蝕膨脹和邊緣化處理等,并定位車牌的文字,實現字符的…

JAVA---面向對象(下)

重生之我開始補知識第三集 1.標準 JavaBean 要求: 1)類名需要見名知意 2)成員變量使用private修飾 3)至少提供兩個構造方法 a.無參構造方法 b.帶全部參數的構造方法 4)成員方法 a.提供每一個成員變量對應的 …

信奧賽CSP-J復賽集訓(DP專題)(24):P1977 出租車拼車

信奧賽CSP-J復賽集訓(DP專題)(24):P1977 出租車拼車 題目背景 話說小 x 有一次去參加比賽,雖然學校離比賽地點不太遠,但小 x 還是想坐出租車去。大學城的出租車總是比較另類,有“拼…

Windows申請蘋果開發者測試證書Uniapp使用

注意事項 蘋果設備,最好是iPhone XS以上,要不然下載不了Apple DeveloperopenSSL 要是V1版本的來生成證書,要不然HBuilder報錯按步驟來,生成證書,生成標識符,添加測試設備,生成描述性文件注冊蘋果開發者賬號 (如果有蘋果賬號直接登錄) 蘋果開發者官網 開通付費 點擊右上…

dockercompose文件倉庫

mysql version: 3 # 使用docker-compose的版本,根據需要可以調整# 創建數據目錄 # mkdir -p /home/docker/mysql/mysql_data # mkdir -p /home/docker/mysql/mysql_logs # 給予適當的權限(確保MySQL容器可以讀寫這些目錄) # chmod 777 /ho…

【Linux】47.高級IO(1)

文章目錄 1. 高級IO1.1 五種IO模型1.2 高級IO重要概念1.2.1 同步通信 vs 異步通信1.2.2 阻塞 vs 非阻塞 1.3非阻塞IO1.3.1 fcntl1.3.2 實現函數SetNoBlock1.3.3 輪詢方式讀取標準輸入1.3.4 I/O多路轉接之select1.3.4.1 初識select:1.3.4.2 select函數原型1.3.4.3 理…

【Vulkan 入門系列】創建幀緩沖、命令池、命令緩存,和獲取圖片(六)

這一節主要介紹創建幀緩沖(Framebuffer),創建命令池,創建命令緩存,和從文件加載 PNG 圖像數據,解碼為 RGBA 格式,并將像素數據暫存到 Vulkan 的 暫存緩沖區中。 一、創建幀緩沖 createFramebu…

ubuntu的普通用戶相關配置

1.切換到普通用戶下,不出現,用戶名主機ip, 環境變量被破壞, 參考:一文教你快速修改ubuntu終端顯示的主機名和用戶名_ubuntu終端名稱-CSDN博客 2.如果登陸進去無法使用ls,cd,vi等命令 2.1 環境變量 如果 PATH 被清空…

騰訊云×數語科技:Datablau DDM (AI智能版)上架云應用!

在數據爆炸式增長的時代,傳統的數據建模方式已難以滿足企業對敏捷性、智能化、自動化的需求。數語科技聯合騰訊云推出的 Datablau DDM 數據建模平臺(AI智能版),基于AI語義建模技術,深度融合騰訊混元大模型能力&#xf…

Spark-streaming(一)

Spark-Streaming概述 Spark Streaming 用于流式數據的處理。 和 Spark 基于 RDD 的概念很相似,Spark Streaming 使用離散化流(discretized stream)作為抽象表示,叫作 DStream。 DStream 是隨時間推移而收到的數據的序列。 Spark-Streaming的特點&…

CS144 Lab 6 實戰記錄:構建 IP 路由器

1 實驗背景與目標 在 CS144 的 Lab 6 中,我們需要在之前實現的 NetworkInterface(Lab 5)基礎上構建一個完整的 IP 路由器。路由器的主要任務是根據路由表將接收到的 IP 數據報轉發到正確的網絡接口,并發送給正確的下一跳&#xf…

【網絡安全】社會工程學策略

1. 社會工程學簡介 社會工程攻擊是威脅行為者常用的攻擊方式。這是因為,誘騙人們提供訪問權限、信息或金錢通常比利用軟件或網絡漏洞更容易。 您可能還記得,社會工程學是一種利用人為錯誤來獲取私人信息、訪問權限或貴重物品的操縱技術。它是一個涵蓋性…

【含文檔+PPT+源碼】基于SpringBoot的開放實驗管理平臺設計與實現

項目介紹 本課程演示的是一款基于SpringBoot的開放實驗管理平臺設計與實現,主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 1.包含:項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從零開始部署運行本套系統…

鴻蒙NEXT開發定位工具類 (WGS-84坐標系)(ArkTs)

import geoLocationManager from ohos.geoLocationManager; import { BusinessError, Callback } from ohos.base; import { LogUtil } from ./LogUtil; import { PermissionUtil } from ./PermissionUtil; import { map, mapCommon } from kit.MapKit; /*** 定位工具類 (WGS-8…

SSM從入門到上手-全面講解SSM框架的使用.

一、SSM框架整合 將Spring、Spring MVC和MyBatis結合在一起,形成一個高效且易于維護的Web應用程序架構。具體整合的方式如下: Spring管理Bean:Spring負責管理所有的Java對象,包括Service層、DAO層等。通過Spring的IoC容器進行依賴…

學員答題pk知識競賽小程序怎么做

制作學員答題PK知識競賽小程序,主要有以下步驟: 一、規劃設計 明確需求:確定小程序的使用場景是校園知識競賽、培訓機構考核還是企業內部培訓等。答題功能,規定答題的具體規則,包括題目類型(單選、多選、…

視頻分析設備平臺EasyCVR視頻技術驅動下,監控上墻全組件解析與組網應用方案

隨著數字化進程的加速推進,視頻監控技術在工業、商業、社區等諸多領域得到了廣泛應用。盡管不同場景對監控功能的具體需求存在差異,但底層硬件架構具有顯著的共性特征。實際部署中,僅需依據網絡環境等實際情況,靈活調整設備的連接…

idea使用docker插件一鍵部署項目

一、首先保證我們電腦上已經安裝了docker docker -v查看docker版本,如果不能識別,需要先下載docker destop,在官網下載正常安裝即可。 安裝成功就可以使用docker 命令了 二、idea下載docker插件并配置docker參數 我是通過tcp連接docker服務…

SQL Tuning Advisor

什么是SQL Tuning Advisor STA可以用來優化那些已經被發現的高負載SQL. 默認情況下, Oracle數據庫在自動維護窗口中自動認證那些有問題的SQL并且執行優化建議,找尋提升高負載SQL執行計劃性能的方法. ** 如何查看自動優化維護窗口產生的報告? ** SQL> set ser…