自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這是一道關于Seata的Java面試題

開發(fā) 前端
從這四種模型中不難看出,在不同的業(yè)務場景中,我們可以使用 Seata 的不同事務模型來解決不同業(yè)務場景中的分布式事務問題,因此我們可以認為 Seata是一個一站式的分布式事務解決方案。

Seata在大廠也是屬于高頻的面試題,有一位3年工作經驗的小伙伴被問到一道這樣的面試題,說“談談你對Seata的理解”。那么,今天我給大家來聊一聊。

另外,我花了很長時間,準備了一份500頁的PDF面試資料文檔和一份10W字的Java總結面試題和答案,

圖片

1、Seata是什么

在微服務架構下,由于數據庫和應用服務的拆分,導致原本一個事務單元中的多個 DML 操作,變成了跨進程或者跨數據庫的多個事務單元的多個 DML 操作,而傳統(tǒng)的數據庫事務無法解決這類的問題,所以就引出了分布式事務的概念。

ENTER TITLE

圖片

分布式事務本質上要解決的就是跨網絡節(jié)點的多個事務的數據一致性問題,業(yè)內常見的解決方法有兩種:

ENTER TITLE

圖片

1、強一致性

圖片

就是所有的事務參與者要么全部成功,要么全部失敗,全局事務協(xié)調者需要知道每個事務參與者的執(zhí)行狀態(tài),再根據狀態(tài)來決定數據的提交或者回滾!

圖片

2、最終一致性,也叫弱一致性

圖片

也就是多個網絡節(jié)點的數據允許出現(xiàn)不一致的情況,但是在最終的某個時間點會達成數據一致。

圖片

基于 CAP 定理我們可以知道,強一致性方案對于應用的性能和可用性會有影響,所以對于數據一致性要求不高的場景,就會采用最終一致性算法。

在分布式事務的實現(xiàn)上,對于強一致性,我們可以通過基于 XA 協(xié)議下的二階段提交來實現(xiàn),對于弱一致性,可以基于 TCC 事務模型、可靠性消息模型等方案來實現(xiàn)。市面上有很多針對這些理論模型實現(xiàn)的分布式事務框架,我們可以在應用中集成這些框架來實現(xiàn)分布式事務。而 Seata 就是其中一種,它是阿里開源的分布式事務解決方案,提供了高性能且簡單易用的分布式事務服務。

1、Seata事務模式

圖片

Seata 中封裝了四種分布式事務模式,分別是:AT模式、TCC 模式、Saga 模式和XA 模式。下面我給大家詳細介紹一下:

第1種:AT 模式,是一種基于本地事務+二階段協(xié)議來實現(xiàn)的最終數據一致性方案,也是Seata 默認的解決方案

圖片

第2種:TCC 模式,TCC 事務是 Try、Confirm、Cancel 三個詞語的縮寫,簡單理解就是把一個完整的業(yè)務邏輯拆分成三個階段,然后通過事務管理器在業(yè)務邏輯層面根據每個分支事務的執(zhí)行情況分別調用該業(yè)務的 Confirm 或者 Cacel 方法。

圖片

第3種:Saga 模式,Saga 模式是 SEATA 提供的長事務解決方案,在 Saga 模式中,業(yè)務流程中每個參與者都提交本地事務,當出現(xiàn)某一個參與者失敗則補償前面已經成功的參與者。

圖片

第4種:XA 模式,XA 可以認為是一種強一致性的事務解決方法,它利用事務資源(數據庫、消息服務等)對 XA 協(xié)議的支持,以 XA 協(xié)議的機制來管理分支事務的一種事務模式。

圖片

從這四種模型中不難看出,在不同的業(yè)務場景中,我們可以使用 Seata 的不同事務模型來解決不同業(yè)務場景中的分布式事務問題,因此我們可以認為 Seata是一個一站式的分布式事務解決方案。

以上就是我對Seata的理解!面試的時候經常會遇到這種寬泛的面試題,一般就是問“談談你對XX的理解”。遇到這類面試題,先不用慌,我告訴大家一個回答的思路??梢园凑占夹g發(fā)展的邏輯,就是先在自己的大腦中的建立一個知識索引,然后基于索引來定位你的知識。

圖片

比如,對于這類問題,一般可以建立一個這樣的思維邏輯:

它是什么?

它能解決什么問題?

它有哪些特點和優(yōu)勢?

它的核心原理是什么?

為什么它能解決這類問題?

大家對照這個邏輯去回答這類面試題,是不是感覺思路異常更清晰呢?

最后,我把之前分享的資料全部整理成了文字,希望能夠以此來提高各位粉絲的通過率。? 0% ?

圖片

責任編輯:武曉燕 來源: Tom彈架構
相關推薦

2024-10-11 17:09:27

2018-03-06 15:30:47

Java面試題

2022-04-08 07:52:17

CSS面試題HTML

2011-05-23 11:27:32

面試題面試java

2015-09-02 14:09:19

面試題程序設計

2009-08-11 10:12:07

C#算法

2009-08-11 14:59:57

一道面試題C#算法

2021-05-31 07:55:44

smartRepeatJavaScript函數

2009-08-11 15:09:44

一道面試題C#算法

2017-11-21 12:15:27

數據庫面試題SQL

2023-08-01 08:10:46

內存緩存

2021-03-16 05:44:26

JVM面試題運行時數據

2021-10-28 11:40:58

回文鏈表面試題數據結構

2022-02-08 18:09:20

JS引擎解析器

2011-03-02 10:58:16

SQL server入門面試題

2017-03-10 09:33:16

JavaScript類型

2011-06-14 09:12:03

JavaScript

2017-09-13 07:15:10

Python讀寫文件函數

2021-03-27 10:59:45

JavaScript開發(fā)代碼

2013-05-29 10:36:08

Android開發(fā)移動開發(fā)字符串反轉
點贊
收藏

51CTO技術棧公眾號