最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Seata?環(huán)境搭建部署過程

 更新時(shí)間:2022年10月27日 16:01:06   作者:小碼code  
Seata是一個(gè)分布式事務(wù),seata服務(wù)端也是一個(gè)微服務(wù),需要和其他微服務(wù)一樣需要注冊中心和配置中心,這篇文章主要介紹了Seata?環(huán)境搭建,需要的朋友可以參考下

在使用微服務(wù)中,單體事務(wù)注解@Transactional 就不適用了,需要采用分布式事務(wù)解決方案,本文介紹分布式事務(wù)Seata的安裝。Seata一款開源的分布式事務(wù)解決方案,致力于在微服務(wù)架構(gòu)下提供高性能和簡單易用的分布式事務(wù)服務(wù)。

seata版本: 1.5.2

前提準(zhǔn)備

Seata是一個(gè)分布式事務(wù),seata服務(wù)端也是一個(gè)微服務(wù),需要和其他微服務(wù)一樣需要注冊中心配置中心。

同時(shí)事務(wù)回滾,需要數(shù)據(jù)庫日志記錄。

  • 注冊中心和配置中心: nacos
  • 數(shù)據(jù)庫: mysql

1.下載

進(jìn)入Seata官網(wǎng)下載,下載版本是1.5.2,找到seata-server-1.5.1.tar.gz下載。解壓文件后進(jìn)入seata文件。

2.建表

新建數(shù)據(jù)庫seata,然后在seata文件夾里面的script文件,找到server —> db —> mysql.sql,在數(shù)據(jù)庫中執(zhí)行sql語句:

-- the table to store GlobalSession data
CREATE TABLE IF NOT EXISTS `global_table`
(
    `xid`                       VARCHAR(128) NOT NULL,
    `transaction_id`            BIGINT,
    `status`                    TINYINT      NOT NULL,
    `application_id`            VARCHAR(32),
    `transaction_service_group` VARCHAR(32),
    `transaction_name`          VARCHAR(128),
    `timeout`                   INT,
    `begin_time`                BIGINT,
    `application_data`          VARCHAR(2000),
    `gmt_create`                DATETIME,
    `gmt_modified`              DATETIME,
    PRIMARY KEY (`xid`),
    KEY `idx_status_gmt_modified` (`status` , `gmt_modified`),
    KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4;

-- the table to store BranchSession data
CREATE TABLE IF NOT EXISTS `branch_table`
(
    `branch_id`         BIGINT       NOT NULL,
    `xid`               VARCHAR(128) NOT NULL,
    `transaction_id`    BIGINT,
    `resource_group_id` VARCHAR(32),
    `resource_id`       VARCHAR(256),
    `branch_type`       VARCHAR(8),
    `status`            TINYINT,
    `client_id`         VARCHAR(64),
    `application_data`  VARCHAR(2000),
    `gmt_create`        DATETIME(6),
    `gmt_modified`      DATETIME(6),
    PRIMARY KEY (`branch_id`),
    KEY `idx_xid` (`xid`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4;

-- the table to store lock data
CREATE TABLE IF NOT EXISTS `lock_table`
(
    `row_key`        VARCHAR(128) NOT NULL,
    `xid`            VARCHAR(128),
    `transaction_id` BIGINT,
    `branch_id`      BIGINT       NOT NULL,
    `resource_id`    VARCHAR(256),
    `table_name`     VARCHAR(32),
    `pk`             VARCHAR(36),
    `status`         TINYINT      NOT NULL DEFAULT '0' COMMENT '0:locked ,1:rollbacking',
    `gmt_create`     DATETIME,
    `gmt_modified`   DATETIME,
    PRIMARY KEY (`row_key`),
    KEY `idx_status` (`status`),
    KEY `idx_branch_id` (`branch_id`),
    KEY `idx_xid_and_branch_id` (`xid` , `branch_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4;

CREATE TABLE IF NOT EXISTS `distributed_lock`
(
    `lock_key`       CHAR(20) NOT NULL,
    `lock_value`     VARCHAR(20) NOT NULL,
    `expire`         BIGINT,
    primary key (`lock_key`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4;

INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('AsyncCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryRollbacking', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('TxTimeoutCheck', ' ', 0);

全局事務(wù)會話由:全局事務(wù)、分支事務(wù)、全局鎖,對應(yīng)表分別為global_tablebranch_table、lock_table。

3.配置 nacos

nacos控制臺添加新的命名空間:

添加一條seata命名空間ID在后面需要用到:

3.1 上傳配置至Nacos配置中心

進(jìn)到seata目錄中,找到nacos-config.sh文件,路徑:script -> config-center -> nacos -> nacos-config.sh。執(zhí)行nacos-config.sh腳本:

sh nacos-config.sh -h 127.0.0.1 -p 8848 -g SEATA_GROUP -t xxxx -u username -w password

參數(shù)詳解:

  • -h nacos服務(wù)IP
  • -p nacos服務(wù)端口
  • -u nacos登錄名
  • -w nacos登錄密碼
  • -g nacos 配置的分組名稱,默認(rèn)設(shè)置SEATA_GROUP
  • -t 上一步配置的命名空間ID

執(zhí)行腳本之后,輸出以下腳本:

Set server.maxCommitRetryTimeout=-1 successfully 
Set server.maxRollbackRetryTimeout=-1 successfully 
Set server.rollbackRetryTimeoutUnlockEnable=false successfully 
Set server.distributedLockExpireTime=10000 successfully 
Set server.xaerNotaRetryTimeout=60000 successfully 
Set server.session.branchAsyncQueueSize=5000 successfully 
Set server.session.enableBranchAsyncRemove=false successfully 
Set server.enableParallelRequestHandle=false successfully 
Set metrics.enabled=false successfully 
Set metrics.registryType=compact successfully 
Set metrics.exporterList=prometheus successfully 
Set metrics.exporterPrometheusPort=9898 successfully 

再去nacos控制臺查看配置:

說明配置上傳成功。上傳不成功,大部分原因是配置沒有配置成功,比如命名空間ID沒配置正確。

4.修改 appplication.yml

找到appplication.yml文件,路徑為:seata -> conf -> application.yml,以下三個(gè)小節(jié)分別配置store、configregistry:

4.1 seata.store

seata.store配置seata的存儲,修改store.mode="db":

seata:
  store:
    # support: file 、 db 、 redis
    mode: db

修改數(shù)據(jù)庫連接,將 seata -> conf -> application.example.yml中附帶額外配置,將其db相關(guān)配置復(fù)制至application.yml,修改store.db相關(guān)屬性。數(shù)據(jù)庫是步驟一配置的數(shù)據(jù)庫:

seata:
  store:
    # support: file 、 db 、 redis
    mode: db
    db:
      datasource: druid
      db-type: mysql
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://xxxxx:3306/seata?rewriteBatchedStatements=true
      user: xxxx
      password: xxx
      min-conn: 5
      max-conn: 100
      global-table: global_table
      branch-table: branch_table
      lock-table: lock_table
      distributed-lock-table: distributed_lock
      query-limit: 100
      max-wait: 5000

4.2 seata.config

seata.config是配置nacos配置中心相關(guān)的配置。將seata.config.type修改成nacos

seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: nacos

然后添加seata.config.nacos相關(guān)的配置:

seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: nacos
    nacos:
      server-addr: 127.0.0.1:8848
      group : "SEATA_GROUP"
      namespace: "xxxxx"
      username: "xxx"
      password: "xxx"

其中namespace是步驟3中的命名空間ID。

4.3 seata.registry

seata.registry是配置注冊中心相關(guān)字段,將seata服務(wù)作為一個(gè)微服務(wù)注冊到注冊中心。將registry.type改成nacos,配置如下:

seata:
  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    type: nacos
    nacos:
      application: "seata-server"
      serverAddr: 127.0.0.1:8848
      group: "SEATA_GROUP"
      namespace: "xxxxxx"
      username: "xxxx"
      password: "xxx"

namespace也是步驟3中的命名空間ID。

啟動

找到seata文件中的bin目錄,執(zhí)行啟動命令:

seata-server.sh -h 127.0.0.1 -p 8091 -m db

控制臺輸出:

apm-skywalking not enabled
seata-server is starting, you can check the /opt/seata/logs/start.out

打開start.out日志:

系統(tǒng)啟動成功,再登錄 http://127.0.0.1:7091,就能看到seata控制臺信息。

nacos控制臺服務(wù)列表新增了一個(gè)服務(wù),說明seata服務(wù)成功注冊到了nacos注冊中心:

總結(jié)

  • seata安裝版本是1.5.2,版本不同,安裝流程也可能不同,這里的版本需要保持一致
  • 執(zhí)行sql創(chuàng)建數(shù)據(jù)表
  • 使用腳本添加配置到nacos配置中心
  • 修改application.yml文件,分別修改storeconfig、registry相關(guān)配置。
  • 啟動服務(wù),成功登陸seata控制臺。
  • 查看nacos控制臺,服務(wù)列表新增seata服務(wù)。

參考

Seata新手部署指南

到此這篇關(guān)于Seata 環(huán)境搭建的文章就介紹到這了,更多相關(guān)Seata 環(huán)境搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java如何比較兩個(gè)對象并獲取不相等的字段詳解

    Java如何比較兩個(gè)對象并獲取不相等的字段詳解

    這篇文章主要給大家介紹了關(guān)于Java如何比較兩個(gè)對象并獲取不相等的字段以及JAVA判斷(獲取)兩個(gè)相同對象不同的數(shù)據(jù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-11-11
  • MyBatis-Plus中公共字段的統(tǒng)一處理的實(shí)現(xiàn)

    MyBatis-Plus中公共字段的統(tǒng)一處理的實(shí)現(xiàn)

    在開發(fā)中經(jīng)常遇到多個(gè)實(shí)體類有共同的屬性字段,這些字段屬于公共字段,本文主要介紹了MyBatis-Plus中公共字段的統(tǒng)一處理的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • Spring中多配置文件及引用其他bean的方式

    Spring中多配置文件及引用其他bean的方式

    本文給大家介紹spring中多配置文件及引用其他bean的方式,涉及到spring配置文件的相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧
    2016-03-03
  • Java跳躍游戲?qū)嵗骖}解決思路詳解

    Java跳躍游戲?qū)嵗骖}解決思路詳解

    這篇文章主要介紹了Java跳躍游戲,總的來說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路
    2022-10-10
  • spring data簡化jpa開發(fā)_動力節(jié)點(diǎn)Java學(xué)院整理

    spring data簡化jpa開發(fā)_動力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了spring data簡化jpa開發(fā),本文主要講述 Spring Data JPA,希望能夠深入學(xué)習(xí) Spring 和 JPA,有興趣的可以了解下
    2017-09-09
  • Java實(shí)現(xiàn)批量操作Excel的示例詳解

    Java實(shí)現(xiàn)批量操作Excel的示例詳解

    在操作Excel的場景中,通常會有一些針對Excel的批量操作,以GcExcel為例,為大家詳細(xì)介紹一下Java是如何實(shí)現(xiàn)批量操作Excel的,需要的可以參考一下
    2023-07-07
  • SpringBoot接口訪問頻率限制的實(shí)現(xiàn)方式

    SpringBoot接口訪問頻率限制的實(shí)現(xiàn)方式

    接口訪問頻率限制是通過在一定時(shí)間內(nèi)限制用戶對接口的訪問次數(shù)來實(shí)現(xiàn)的,在Spring Boot中,我們可以通過多種方式來實(shí)現(xiàn)接口的限流,如使用過濾器、攔截器或者借助第三方庫,本文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • Java中finally和return的關(guān)系實(shí)例解析

    Java中finally和return的關(guān)系實(shí)例解析

    這篇文章主要介紹了Java中finally和return的關(guān)系實(shí)例解析,總結(jié)了二者的關(guān)系,然后分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 淺談Java回收對象的標(biāo)記和對象的二次標(biāo)記過程

    淺談Java回收對象的標(biāo)記和對象的二次標(biāo)記過程

    這篇文章主要介紹了淺談Java回收對象的標(biāo)記和對象的二次標(biāo)記過程的相關(guān)內(nèi)容,小編覺得還是挺不錯(cuò)的,這里給大家分享一下,需要的朋友可以參考。
    2017-10-10
  • Java的Jackson自定義序列化詳解

    Java的Jackson自定義序列化詳解

    這篇文章主要介紹了Java的Jackson自定義序列化詳解,對比序列化器,可以看到,使用@JsonValue注解已經(jīng)將Leader類的序列化方式改變了,進(jìn)而影響了Country類,再來執(zhí)行test7()測試反序列化,結(jié)果與之前是一致的,需要的朋友可以參考下
    2023-11-11

最新評論

洛宁县| 遵义县| 闵行区| 昌乐县| 沙田区| 拉孜县| 通化县| 荔波县| 宁都县| 塔河县| 旬邑县| 柳州市| 夏津县| 当雄县| 古丈县| 泊头市| 托克逊县| 巴塘县| 东莞市| 什邡市| 汽车| 通城县| 建始县| 潼关县| 鄂伦春自治旗| 唐山市| 天峨县| 时尚| 德兴市| 新乡市| 门头沟区| 曲松县| 贡觉县| 崇阳县| 苍溪县| 云梦县| 双桥区| 萨迦县| 通化市| 西充县| 普兰县|