摘要:簡介地址版本和版本為,一直在快速迭代在之前都有可能出現(xiàn)協(xié)議不兼容盡量使用版本號一致說明目前提供的示例是針對使用的服務(wù),那的項目如何集成呢快速開始使用案例購買商品的業(yè)務(wù)邏輯。
簡介 github地址
spring-boot-starter-seata:https://github.com/itrickzhan...
seata版本server和client版本為0.4.1,Seata 一直在快速迭代在1.0 之前都有可能出現(xiàn)協(xié)議不兼容 盡量使用版本號一致
說明目前提供的示例是針對使用dubbo的服務(wù),那Spring Boot的項目如何集成fescar呢?
快速開始 使用案例Business Service購買商品的業(yè)務(wù)邏輯。整個業(yè)務(wù)邏輯由3個微服務(wù)驅(qū)動:
Storage service: 扣除給定商品的庫存量.
Order service: 根據(jù)采購需求創(chuàng)建訂單.
Account service: 借記用戶帳戶上的余額.
請求邏輯 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運行
spring-boot-starter-seata-sample
Start AccountService
Start StorageService
Start OrderService
Run BusinessService for demo test
運行結(jié)果啟動demo
訪問demo
數(shù)據(jù)庫數(shù)據(jù)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75497.html
摘要:三實踐案例案例簡介分布式系統(tǒng)中,微服務(wù)基礎(chǔ)組件等,系統(tǒng)中間件,等,對常用功能配置等,進行二次淺封裝并統(tǒng)一集成管理,以滿足日常開發(fā)中基礎(chǔ)環(huán)境搭建與臨時工具的快速實現(xiàn)。 一、背景簡介 分布式系統(tǒng)中存在很多拆分的服務(wù),在不斷迭代升級的過程中,會出現(xiàn)如下常見的棘手情況: 某個技術(shù)組件版本升級,依賴包升級導(dǎo)致部分語法或者API過期,或者組件修復(fù)緊急的問題,從而會導(dǎo)致分布式系統(tǒng)下各個服...
摘要:學(xué)習(xí)路線編程基礎(chǔ)語言語言基礎(chǔ)數(shù)據(jù)類型面向?qū)ο蠼涌谌萜鳟惓7盒头瓷渥⒔饬骷项惣虞d機制字節(jié)碼執(zhí)行機制 Java學(xué)習(xí)路線 Java編程基礎(chǔ) Java語言 Java語言基...
摘要:如上圖所示,的實際上是已中間件的形式放在應(yīng)用層,不用依賴數(shù)據(jù)庫對協(xié)議的支持,完全剝離了分布式事務(wù)方案對數(shù)據(jù)庫在協(xié)議支持上的要求。 微信公眾號「后端進階」,專注后端技術(shù)分享:Java、Golang、WEB框架、分布式中間件、服務(wù)治理等等。 在微服務(wù)架構(gòu)體系下,我們可以按照業(yè)務(wù)模塊分層設(shè)計,單獨部署,減輕了服務(wù)部署壓力,也解耦了業(yè)務(wù)的耦合,避免了應(yīng)用逐漸變成一個龐然怪物,從而可以輕松擴展,...
摘要:在之后,也終于發(fā)布了最新的版本。該版本距離上一次發(fā)布,過去了整整個月下面就隨我一起看看,這個大家期待已久的版本都有哪些內(nèi)容值得我們關(guān)注。如果是用戶,同時也是阿里云這些產(chǎn)品的用戶,那么直接使用還是非常方便的。 在Nacos 1.0.0 Release之后,Spring Cloud Alibaba也終于發(fā)布了最新的版本。該版本距離上一次發(fā)布,過去了整整4個月!下面就隨我一起看看,這個大家期...
閱讀 1424·2023-04-26 01:58
閱讀 2301·2021-11-04 16:04
閱讀 1792·2021-08-31 09:42
閱讀 1780·2021-07-25 21:37
閱讀 1077·2019-08-30 15:54
閱讀 2097·2019-08-30 15:53
閱讀 3064·2019-08-29 13:28
閱讀 2703·2019-08-29 10:56