eureka整合seata 分布式事務(wù)

seata的架構(gòu)


image.png

seata是無(wú)狀態(tài)时甚,低耦合的微服務(wù)嘹裂,為了達(dá)到回滾的狀態(tài)需要建立seata的服務(wù)

1聚唐、下載seata 服務(wù)

http://seata.io/zh-cn/blog/download.html
本文下載的是 1.4.2
下載后解壓的目錄

image.png

2考廉、修改seata配置文件

image.png

2.1惯殊、配置注冊(cè)配置文件

本文由于沒(méi)有架設(shè)集群采用file 模式
registry.conf

registry {
  # file 、nacos 纳本、eureka窍蓝、redis、zk繁成、consul吓笙、etcd3、sofa
  type = "eureka"  # 改為 eureka

  eureka { # 修改eureka 數(shù)據(jù)塊中的數(shù)據(jù)
    serviceUrl = "http://192.168.1.2:9876/eureka" # eureka服務(wù)的地址
    application = "seata-server" # seata 的顯示名
    weight = "1"
  }
}

file.conf
將 file.conf 和 file.conf.example 互換名稱

image.png

并在 新 的 file.conf 中加入

service {
  #transaction service group mapping
  # 注意:1.2.0 版本(或更早的版本) 已經(jīng)將 ‘vgroup_mapping’ 改為 ‘vgroupMapping’
  vgroupMapping.fsp_tx_group = "default"
  #only support when registry.type=file, please don't set multiple addresses
  default.grouplist = "127.0.0.1:8091"
  #degrade, current not support 降級(jí)處理
  enableDegrade = false
  #disable seata 是否開(kāi)啟本地事務(wù)
  disableGlobalTransaction = false
}

此代碼塊和 server 同級(jí)


image.png

此時(shí) 啟動(dòng) seata server 即可


image.png

image.png

啟動(dòng)后可以在 eureka中看到
image.png

3巾腕、更新業(yè)務(wù)代碼配置

3.1 業(yè)務(wù)代碼中引入依賴

pom.xml

   <!-- Seata -->
        <dependency>
            <groupId>io.seata</groupId>
            <artifactId>seata-spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>com.alibaba</groupId>
                    <artifactId>druid</artifactId>
                </exclusion>
            </exclusions>
            <version>1.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-seata</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>io.seata</groupId>
                    <artifactId>seata-spring-boot-starter</artifactId>
                </exclusion>
            </exclusions>
            <version>2.2.0.RELEASE</version>
        </dependency>

3.2 修改 yml文件

# seata的配置
seata: 
  enabled: true
  application-id: seata-server
  tx-service-group: default  # 此時(shí)不能變化面睛,否則會(huì)出現(xiàn)io.seata.common.exception.FrameworkException: No available service
  enable-auto-data-source-proxy: true
  use-jdk-proxy: false
  service:
    vgroup-mapping:
      default: seata-server
    enable-degrade: false
    disable-global-transaction: false
  registry:
    type: eureka
    eureka:
      weight: 1
      service-url: http://192.168.1.2:9876/eureka/

# eureka
eureka:
  client:
    service-url:
      defaultZone: http://192.168.1.2:9876/eureka/
    enabled: true

在serviceImp上加入 注解

    @GlobalTransactional
image.png

在 application中加入
@EnableAutoDataSourceProxy


@MapperScan("com.test.usr.mapper")
@SpringBootApplication()
@EnableEurekaClient
@EnableFeignClients
@EnableAutoDataSourceProxy
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

}

3.3、在數(shù)據(jù)庫(kù)中加入 undo_log

如果你需要用 seata 這個(gè)表必須加入
mysql

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 = utf8 COMMENT ='AT transaction mode undo table';

啟動(dòng) seata服務(wù)器

啟動(dòng)成功:


image.png

后臺(tái)啟動(dòng) seata
nohup ./bin/seata-server.sh -p 8091 -h 127.0.0.1 -m file >nohup.out 2>1 &

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末尊搬,一起剝皮案震驚了整個(gè)濱河市叁鉴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌佛寿,老刑警劉巖幌墓,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡常侣,警方通過(guò)查閱死者的電腦和手機(jī)蜡饵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)袭祟,“玉大人验残,你說(shuō)我怎么就攤上這事〗砣椋” “怎么了您没?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)胆绊。 經(jīng)常有香客問(wèn)我氨鹏,道長(zhǎng),這世上最難降的妖魔是什么压状? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任仆抵,我火速辦了婚禮,結(jié)果婚禮上种冬,老公的妹妹穿的比我還像新娘镣丑。我一直安慰自己,他們只是感情好娱两,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布莺匠。 她就那樣靜靜地躺著,像睡著了一般十兢。 火紅的嫁衣襯著肌膚如雪趣竣。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,337評(píng)論 1 310
  • 那天旱物,我揣著相機(jī)與錄音遥缕,去河邊找鬼。 笑死宵呛,一個(gè)胖子當(dāng)著我的面吹牛单匣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宝穗,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼户秤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了讽营?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤泡徙,失蹤者是張志新(化名)和其女友劉穎橱鹏,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡莉兰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年挑围,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糖荒。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杉辙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捶朵,到底是詐尸還是另有隱情蜘矢,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布综看,位于F島的核電站品腹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏红碑。R本人自食惡果不足惜舞吭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望析珊。 院中可真熱鬧羡鸥,春花似錦、人聲如沸忠寻。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锡溯。三九已至赶舆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祭饭,已是汗流浹背芜茵。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留倡蝙,地道東北人九串。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像寺鸥,于是被迫代替她去往敵國(guó)和親猪钮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容