久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

分布式事務框架DogTcc是怎么樣的

158次閱讀
沒有評論

共計 2432 個字符,預計需要花費 7 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關分布式事務框架 DogTcc 是怎么樣的,文章內容質量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Dog Tcc 是什么?

DogTcc 是一個基于注解的高性能 分布式事務 TCC 框架。感謝于他的框架設計, 可達到 2ms/ 事務,支持鏈式調用,損耗線性增長。

框架特性

高速,事務發起方損耗 2.15ms 每事務,事務被調方損耗 2.13ms 每事務

損耗隨事務鏈變寬[A 調用 B,C,D,E..],或者變深[A 調用 B,B 調用 C,C 調用 D..], 線性增長

對原有服務無侵入,標注是基于方法而不是 RPC 接口的,可以在需要回滾的最小單位方法上添加標注

易用性高,使用者通過標注,和實現指定的回滾和確認接口,即可集成框架

節點無本地狀態,部署多臺即可實現集群,無需多余配置

和協議無關,使用者只要實現事務的協議注入即可集成到框架中,可參照 Spring 模塊

和消息服務器無關,框架提供了消息服務接口,使用者可使用其他消息中間件,可參考 zookeeper 模塊

支持事務鏈,事務鏈長度不影響事務性能

故障恢復,任何服務節點丟失都不會影響最終一致性,丟失節點的事務會被同類節點托管,或者在丟失節點啟動時候恢復

錯誤通知,對于極端情況,Confirm 或者 Cancel 失敗,系統會通過第三方接口通知,用戶需要實現該接口定義的方法

性能報告

測試機配置

cpu family : 6 model : 63 model name : Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz

Linux version 3.10.0-327.el7.x86_64

4G

內存

操作系統

Cpu

啟動配置

zookeeper 默認配置啟動

注冊中心 和 Server1 Server2 Server3

啟動參數:-Xms256m -Xmx512m

測試用例 [見 Server1 工程的 Server1ApplicationController]

鏈式調用:Server1 調用 Server2 ,Server3 ; Server2 調用 Server3

單次調用:Server1 調用 Server3

為了降低業務對框架性能測試的影響,Server2 和 Server3 的業務代碼為空。

Server2 中有一個 Call 單元

Call(有回滾需求的方法)定義請見:https://github.com/sunpengChina/dog/wiki/DogTcc-architecture

Server3 中有兩個 Call 單元

性能報告

[1]非線程 5000 次非 TCC 事務調用:11325ms

[2]非線程 5000 次 TCC 事務單次調用:34133ms

[3]10 線程,各 500 次循環,共 5000 次鏈式,TCC 事務調用:49826ms

[4]10 線程,各 500 次循環,共 5000 次鏈式, 非 TCC 事務調用:6458ms

[5]10 線程,各 500 次循環,共 5000 次,TCC 事務單次調用:35566ms

[6]10 線程,各 500 次循環,共 5000 次, 非 TCC 事務單次調用:2884ms

結論

設 tcc 單次調用,發起方損耗為 x (ms),call 損耗為 y (ms)

根據性能報告的 [3] 和[4],可得 x + 3y = (49826 – 6458)/5000 = 8.67 ms

根據性能報告的 [5] 和[6], 可得 x + 2y = (35566-2884)/5000 = 6.52 ms

可得 tcc 發起方單次損耗為:2.25 ms ; Call 方損耗為 2.13 ms

快速開始

準備 zookeeper

wget https://raw.githubusercontent.com/wiki/sunpengChina/dog/zookeeper-3.4.13.zip

解壓文件 unzip zookeeper-3.4.13.zip

進入 zk 目錄 cd zookeeper-3.4.13/bin

啟動 zk 服務器 ./zkServer.sh start

打開 zk 客戶端 ./zkCli.sh

在 zk 客戶端中執行 create /dog dog

下載源碼

https://github.com/sunpengChina/dog.git

進入源碼根目錄,編譯源碼 mvn clean install

啟動服務

啟動 springCloud 配置中心: cd jar -jar eureka/target/eureka-1.0-SNAPSHOT.jar

啟動服務 Server1:jar -jar Server1/target/Server1-1.0-SNAPSHOT.jar

啟動服務 Server2:jar -jar Server2/target/Server2-1.0-SNAPSHOT.jar

啟動服務 Server3:jar -jar Server3/target/Server3-1.0-SNAPSHOT.jar

在瀏覽器中測試

http://127.0.0.1:8081/chainTcc 一次鏈式事務調用,檢驗你的系統是否正常部署

http://127.0.0.1:8081/noTcc5000 5000 次無事務調用的時間

http://127.0.0.1:8081/singleTcc5000 5000 次簡單事務單元的時間

http://127.0.0.1:8081/chainTcc5000thread 10 個線程各 500 次調用 TCC 鏈式事務,調用需要的時間

http://127.0.0.1:8081/chainNoTcc5000thread 10 個線程各 500 次調用鏈式非 TCC 事務,調用需要的時間

http://127.0.0.1:8081/singleTcc5000thread 10 個線程各 500 次調用非鏈式 TCC 事務,調用需要的時間

http://127.0.0.1:8081/singleNoTcc5000thread 10 個線程各 500 次調用非鏈式非 TCC 事務,調用需要的時間

關于分布式事務框架 DogTcc 是怎么樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計2432字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 内乡县| 松江区| 临桂县| 方正县| 大竹县| 宜章县| 营山县| 永靖县| 桂东县| 明水县| 浙江省| 盘山县| 上高县| 泽州县| 吴川市| 南通市| 铁岭市| 南澳县| 余姚市| 紫阳县| 临朐县| 宕昌县| 宁海县| 临泽县| 桐城市| 平江县| 华亭县| 云林县| 建阳市| 普兰县| 长子县| 湘潭县| 凯里市| 和林格尔县| 浙江省| 图片| 哈巴河县| 二手房| 略阳县| 凭祥市| 昆山市|