中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

六合哪家做網(wǎng)站建設(shè)網(wǎng)站 軟件

六合哪家做網(wǎng)站建設(shè),網(wǎng)站 軟件,陜西專業(yè)網(wǎng)站建設(shè)公司,??诰W(wǎng)絡推廣0.Seata官方文檔 1.Seata概念及原理 Seata是什么 Seata 是一款開源的分布式事務解決方案,致力于提供高性能和簡單易用的分布式事務服務。Seata 將為用戶提供了 AT、TCC、SAGA 和 XA 事務模式,為用戶打造一站式的分布式解決方案。 Seata主要由三個重要組…

0.Seata官方文檔

1.Seata概念及原理

  • Seata是什么

    • Seata 是一款開源的分布式事務解決方案,致力于提供高性能和簡單易用的分布式事務服務。Seata 將為用戶提供了 AT、TCC、SAGA 和 XA 事務模式,為用戶打造一站式的分布式解決方案。
  • Seata主要由三個重要組件組成

    • TC(Transaction Coordinator):事務協(xié)調(diào)器,管理全局的分支事務的狀態(tài),用于全局性事務的提交和回滾
    • TM(Transaction Manager):事務管理器,用于開啟、提交或者回滾全局事務
    • RM(Resource Manager):資源管理器,用于分支事務上的資源管理,向TC注冊分支事務、上報分支事務的狀態(tài)、接受TC的命令來提交或者回滾分支事務
      • 傳統(tǒng)XA協(xié)議實現(xiàn)2PC方案的RM是在數(shù)據(jù)庫層,RM本質(zhì)上就是數(shù)據(jù)庫自身
      • Seata的RM是以jar包的形式嵌入在應用程序里面
  • 架構(gòu)理解:TC為單獨部署的Server服務端,TM和RM為嵌入到應用中的Client客戶端

    ? 在這里插入圖片描述

  • 其它術(shù)語

    • XID:TM請求TC開啟一個全局事務,TC會生成一個XID作為該全局事務的編號,XID會在微服務的調(diào)用鏈路中傳播,保證將多個微服務的子事務關(guān)聯(lián)在一起
  • Seata事務處理過程描述

    1. A服務的TM向TC申請開啟(begin)一個全局事務,全局事務創(chuàng)建成功并生成一個全局唯一的XID
    2. A服務的RM向TC注冊分支事務
    3. A服務執(zhí)行分支事務,對數(shù)據(jù)庫進行操作
    4. A服務遠程調(diào)用B服務,并把XID在微服務調(diào)用鏈路的上下文中傳播
    5. B服務的RM向TC注冊分支事務,并將其納入XID對應的全局事務的管轄
    6. B服務執(zhí)行分支事務,對數(shù)據(jù)庫進行操作
    7. 全局事務調(diào)用鏈處理完畢,TM根據(jù)有無異常向TC發(fā)起針對XID的全局提交(commit)或回滾(rollback)決議
    8. TC調(diào)度XID下管轄的全部分支事務完成提交(commit)或回滾(rollback)請求
  • Seata實現(xiàn)分布式事務,關(guān)鍵是UNDO_LOG(回滾日志記錄表)

    • 在每個應用需要分布式事務的業(yè)務庫中創(chuàng)建這張表,這個表的核心作用是將業(yè)務數(shù)據(jù)在更新前后的數(shù)據(jù)鏡像組織成回滾日志,保存在UNDO_LOG表中,以便業(yè)務異常能隨時回滾
  • Seata有四種模式

    • AT

      • AT模式可以應對大多數(shù)的業(yè)務場景,并且基本可以做到無業(yè)務入侵,開發(fā)者無感知

      • 用戶只需關(guān)心自己的業(yè)務SQL,AT模式分為兩個階段,可以認為是2PC

        • 一階段:執(zhí)行用戶SQL

          • Seata會攔截業(yè)務SQL,找到業(yè)務SQL要更新的業(yè)務數(shù)據(jù),在業(yè)務數(shù)據(jù)被更新前,將其保存為before image,然后執(zhí)行業(yè)務SQL更新業(yè)務數(shù)據(jù)
          • 在業(yè)務數(shù)據(jù)更新之后,再將其保存成after image,最后生成行鎖
          • 以上操作全部在一個數(shù)據(jù)庫事務內(nèi)完成,這樣保證了一階段操作的原子性
        • 二階段:Seata框架自動生成提交或者回滾

          • 二階段提交:因為業(yè)務SQL在一階段已經(jīng)提交至數(shù)據(jù)庫,所以Seata框架只需將一階段保存的快照數(shù)據(jù)和行鎖刪掉,完成數(shù)據(jù)清理即可
          • 二階段回滾:還原業(yè)務數(shù)據(jù),回滾方式便是用before image 還原業(yè)務數(shù)據(jù);但在還原前要校驗臟寫,對比數(shù)據(jù)庫當前業(yè)務數(shù)據(jù)和after image,如果兩份數(shù)據(jù)完全一致就說明沒有臟寫,出現(xiàn)臟寫就需要轉(zhuǎn)人工處理
    • TCC

    • Sage

    • XA

2.Seata使用基于AT模式

  • 創(chuàng)建undo_log表,每個庫都需要

    CREATE TABLE IF NOT EXISTS `undo_log`
    (`branch_id`     BIGINT       NOT NULL COMMENT 'branch transaction id',`xid`           VARCHAR(128) NOT NULL COMMENT 'global transaction id',`context`       VARCHAR(128) NOT NULL COMMENT 'undo_log context,such as serialization',`rollback_info` LONGBLOB     NOT NULL COMMENT 'rollback info',`log_status`    INT(11)      NOT NULL COMMENT '0:normal status,1:defense status',`log_created`   DATETIME(6)  NOT NULL COMMENT 'create datetime',`log_modified`  DATETIME(6)  NOT NULL COMMENT 'modify datetime',UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`)) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8mb4 COMMENT ='AT transaction mode undo table';
    ALTER TABLE `undo_log` ADD INDEX `ix_log_created` (`log_created`);
    
  • 安裝Seata服務器,本人使用docker安裝

    docker run -d --name gen-seata \-p 18091:8091 \seataio/seata-server:1.3.0
    
  • TC(事務協(xié)調(diào)器)需要存儲全局事務和分支事務的記錄,支持三種存儲模式

    • file模式(默認):性能高,適合單機模式,在內(nèi)存中讀寫,并持久化到本地文件中
      • 在bin/sessionStore/root.data文件
    • db模式:性能較差,適合TC集群模式
    • redis模式:性能較高,適合TC集群模式
  • 項目添加依賴

    <!--Seata分布式事務:安裝服務端版本需與客戶端版本保持一致-->
    <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId><exclusions><exclusion><groupId>io.seata</groupId><artifactId>seata-spring-boot-starter</artifactId></exclusion></exclusions>
    </dependency>
    <dependency><groupId>io.seata</groupId><artifactId>seata-spring-boot-starter</artifactId><version>1.3.0</version>
    </dependency>
    
  • application.yml文件

    # seata配置
    seata:tx-service-group: gen-user-service-groupservice:grouplist:default: 114.132.67.61:18091vgroup-mapping:gen-user-service-group: default
    
  • 在Service方法上增加注解@GlobalTransactional

http://www.risenshineclean.com/news/61397.html

相關(guān)文章:

  • 美食網(wǎng)站設(shè)計方案丈哥seo博客工具
  • 廣州最好的商城網(wǎng)站制作百度2023免費下載
  • 做卡盟開端網(wǎng)站要多少錢網(wǎng)站seo診斷報告
  • 深圳網(wǎng)站開發(fā)antnw互聯(lián)網(wǎng)網(wǎng)絡推廣
  • 招商加盟網(wǎng)站推廣方案公司域名注冊查詢
  • 攀枝花住房和城鄉(xiāng)建設(shè)廳網(wǎng)站三只松鼠營銷案例分析
  • 東莞網(wǎng)站建設(shè)公司制作網(wǎng)站網(wǎng)絡推廣深圳有效渠道
  • 吉林省住房建設(shè)廳網(wǎng)站seo診斷工具有哪些
  • 紹興網(wǎng)站建設(shè)設(shè)計google推廣專員招聘
  • 做電子商務網(wǎng)站多少錢推廣注冊app拿傭金
  • 網(wǎng)站制作職業(yè)黃金網(wǎng)站軟件免費
  • 做設(shè)計的素材網(wǎng)站有哪些什么是推廣
  • 網(wǎng)站開發(fā)標準合同seo咨詢茂名
  • 網(wǎng)站設(shè)計制作哪家服務好太原關(guān)鍵詞排名提升
  • 網(wǎng)站自己推廣怎么做廈門百度代理公司
  • 萊蕪金點子廣告電子版2024seo網(wǎng)站推廣價格
  • 網(wǎng)站工作溝通及建設(shè)seo培訓教程
  • 峰峰專業(yè)做網(wǎng)站網(wǎng)絡安全培訓
  • 做網(wǎng)站有哪些公司好友鏈出售
  • 軟件庫合集資料網(wǎng)站網(wǎng)店買賣有哪些平臺
  • 中電建鐵路建設(shè)公司網(wǎng)站網(wǎng)頁設(shè)計代碼
  • 網(wǎng)站審批需要什么手續(xù)東莞優(yōu)化seo
  • 內(nèi)蒙包頭網(wǎng)站開發(fā)公司培訓課程有哪些
  • 網(wǎng)站開發(fā)平均工資湖南百度seo
  • 云免網(wǎng)站空間外貿(mào)網(wǎng)絡推廣經(jīng)驗
  • 網(wǎng)站優(yōu)化建設(shè)哈爾濱3322免費域名注冊
  • 企業(yè)網(wǎng)站托管搜索引擎優(yōu)化師
  • 做電影種子下載網(wǎng)站違法嗎廣州新聞熱點事件
  • 網(wǎng)站開發(fā)職業(yè)總結(jié)企業(yè)網(wǎng)站設(shè)計價格
  • 做網(wǎng)站服務器e3百度網(wǎng)盤搜索入口