亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

springboot集成分布式事務(wù)Seata

focusj / 3130人閱讀

摘要:簡(jiǎn)介地址版本和版本為,一直在快速迭代在之前都有可能出現(xiàn)協(xié)議不兼容盡量使用版本號(hào)一致說(shuō)明目前提供的示例是針對(duì)使用的服務(wù),那的項(xiàng)目如何集成呢快速開(kāi)始使用案例購(gòu)買商品的業(yè)務(wù)邏輯。

簡(jiǎn)介 github地址

spring-boot-starter-seata:https://github.com/itrickzhan...

seata版本

server和client版本為0.4.1,Seata 一直在快速迭代在1.0 之前都有可能出現(xiàn)協(xié)議不兼容 盡量使用版本號(hào)一致

說(shuō)明

目前提供的示例是針對(duì)使用dubbo的服務(wù),那Spring Boot的項(xiàng)目如何集成fescar呢?

快速開(kāi)始 使用案例

Business Service購(gòu)買商品的業(yè)務(wù)邏輯。整個(gè)業(yè)務(wù)邏輯由3個(gè)微服務(wù)驅(qū)動(dòng):

Storage service: 扣除給定商品的庫(kù)存量.

Order service: 根據(jù)采購(gòu)需求創(chuàng)建訂單.

Account service: 借記用戶帳戶上的余額.

請(qǐng)求邏輯

fescar下載

下載地址:https://github.com/alibaba/fe...

腳本 業(yè)務(wù)腳本
DROP TABLE IF EXISTS `storage_tbl`;
CREATE TABLE `storage_tbl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `commodity_code` varchar(255) DEFAULT NULL,
  `count` int(11) DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE KEY (`commodity_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `order_tbl`;
CREATE TABLE `order_tbl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` varchar(255) DEFAULT NULL,
  `commodity_code` varchar(255) DEFAULT NULL,
  `count` int(11) DEFAULT 0,
  `money` int(11) DEFAULT 0,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `account_tbl`;
CREATE TABLE `account_tbl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` varchar(255) DEFAULT NULL,
  `money` int(11) DEFAULT 0,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
事務(wù)腳本
-- 注意此處0.3.0+ 增加唯一索引 ux_undo_log
CREATE TABLE `undo_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `branch_id` bigint(20) NOT NULL,
  `xid` varchar(100) NOT NULL,
  `rollback_info` longblob NOT NULL,
  `log_status` int(11) NOT NULL,
  `log_created` datetime NOT NULL,
  `log_modified` datetime NOT NULL,
  `ext` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
集成

    org.springframework.boot
    spring-boot-starter-seata
    ${project.version}
使用

使用注解@GlobalTransactional

    @GlobalTransactional(timeoutMills = 300000, name = "spring-cloud-demo-tx")
    @RequestMapping(value = "/fescar/feign", method = RequestMethod.GET, produces = "application/json")
    public String feign() {
        LOGGER.info("business Service Begin ... xid: " + RootContext.getXID());
        String result = storageService.storage(COMMODITY_CODE, ORDER_COUNT);
        if (!SUCCESS.equals(result)) {
            throw new RuntimeException();
        }
        result = orderService.order(USER_ID, COMMODITY_CODE, ORDER_COUNT);
        if (!SUCCESS.equals(result)) {
            throw new RuntimeException();
        }
        return SUCCESS;
    }
demo運(yùn)行

spring-boot-starter-seata-sample

Start AccountService

Start StorageService

Start OrderService

Run BusinessService for demo test

運(yùn)行結(jié)果

啟動(dòng)demo

訪問(wèn)demo

數(shù)據(jù)庫(kù)數(shù)據(jù)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/75497.html

相關(guān)文章

  • 微服務(wù)架構(gòu)中,二次淺封裝實(shí)踐

    摘要:三實(shí)踐案例案例簡(jiǎn)介分布式系統(tǒng)中,微服務(wù)基礎(chǔ)組件等,系統(tǒng)中間件,等,對(duì)常用功能配置等,進(jìn)行二次淺封裝并統(tǒng)一集成管理,以滿足日常開(kāi)發(fā)中基礎(chǔ)環(huán)境搭建與臨時(shí)工具的快速實(shí)現(xiàn)。 一、背景簡(jiǎn)介 分布式系統(tǒng)中存在很多拆分的服務(wù),在不斷迭代升級(jí)的過(guò)程中,會(huì)出現(xiàn)如下常見(jiàn)的棘手情況: 某個(gè)技術(shù)組件版本升級(jí),依賴包升級(jí)導(dǎo)致部分語(yǔ)法或者API過(guò)期,或者組件修復(fù)緊急的問(wèn)題,從而會(huì)導(dǎo)致分布式系統(tǒng)下各個(gè)服...

    Hujiawei 評(píng)論0 收藏0
  • Java學(xué)習(xí)路線

    摘要:學(xué)習(xí)路線編程基礎(chǔ)語(yǔ)言語(yǔ)言基礎(chǔ)數(shù)據(jù)類型面向?qū)ο蠼涌谌萜鳟惓7盒头瓷渥⒔饬骷项惣虞d機(jī)制字節(jié)碼執(zhí)行機(jī)制 Java學(xué)習(xí)路線 Java編程基礎(chǔ) Java語(yǔ)言 Java語(yǔ)言基...

    不知名網(wǎng)友 評(píng)論0 收藏0
  • 布式事務(wù)中間件Seata的設(shè)計(jì)原理

    摘要:如上圖所示,的實(shí)際上是已中間件的形式放在應(yīng)用層,不用依賴數(shù)據(jù)庫(kù)對(duì)協(xié)議的支持,完全剝離了分布式事務(wù)方案對(duì)數(shù)據(jù)庫(kù)在協(xié)議支持上的要求。 微信公眾號(hào)「后端進(jìn)階」,專注后端技術(shù)分享:Java、Golang、WEB框架、分布式中間件、服務(wù)治理等等。 在微服務(wù)架構(gòu)體系下,我們可以按照業(yè)務(wù)模塊分層設(shè)計(jì),單獨(dú)部署,減輕了服務(wù)部署壓力,也解耦了業(yè)務(wù)的耦合,避免了應(yīng)用逐漸變成一個(gè)龐然怪物,從而可以輕松擴(kuò)展,...

    Kylin_Mountain 評(píng)論0 收藏0
  • Spring Cloud Alibaba 新版本發(fā)布:眾多期待內(nèi)容整合打包加入!

    摘要:在之后,也終于發(fā)布了最新的版本。該版本距離上一次發(fā)布,過(guò)去了整整個(gè)月下面就隨我一起看看,這個(gè)大家期待已久的版本都有哪些內(nèi)容值得我們關(guān)注。如果是用戶,同時(shí)也是阿里云這些產(chǎn)品的用戶,那么直接使用還是非常方便的。 在Nacos 1.0.0 Release之后,Spring Cloud Alibaba也終于發(fā)布了最新的版本。該版本距離上一次發(fā)布,過(guò)去了整整4個(gè)月!下面就隨我一起看看,這個(gè)大家期...

    不知名網(wǎng)友 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<