自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文了解Seata的安裝和配置

開發(fā) 架構(gòu)
分布式事務其實現(xiàn)在解決方案有很多,比如 TCC方案,XA 方案,本地消息表,可靠消息最終一致性方案,最大努力通知方案等等,但是這種方案實現(xiàn)上肯定都是偏復雜的,而阿里我們都知道他是有一套自己解決分布式事務的方案的,那么大家都知道是什么呢?

我們都知道現(xiàn)在使用微服務,那么就會出現(xiàn)一種情況,就是一個功能,從 A 服務,到 B 服務,然后到 C 服務,每個服務都可能需要去調(diào)取不同的服務,而這個服務之間的調(diào)用,而當他們使用三個獨立的數(shù)據(jù)源的時候,那么他們也就只能保證自己每個服務內(nèi)部的事務,而去全局的一致性,則是沒有辦法保證的,也就是我們再面試的時候,經(jīng)常會被問到的分布式事務。

分布式事務

其實分布式事務用一句話概括,那就是一次業(yè)務操作,如果橫跨多個數(shù)據(jù)源或者需要跨多個系統(tǒng)進行遠程調(diào)用的話,就會產(chǎn)生分布式事務問題。

如何解決分布式事務

分布式事務其實現(xiàn)在解決方案有很多,比如 TCC方案,XA 方案,本地消息表,可靠消息最終一致性方案,最大努力通知方案等等,但是這種方案實現(xiàn)上肯定都是偏復雜的,而阿里我們都知道他是有一套自己解決分布式事務的方案的,那么大家都知道是什么呢?今天了不起就來和大家看看這個 Seata 一款開源的分布式事務解決方案,致力于在微服務架構(gòu)下提供高性能和簡單易用的分布式事務服務。

Seata簡介

Senta 是一款開源的分布式事務解決方案,致力于在微服務架構(gòu)下提供高性能和簡單易用的分布式事務服務。

我們來看看官網(wǎng)的介紹,

Seata官網(wǎng)

圖片圖片

突然看到這個圖里面的術(shù)語的時候,是不是有點懵,我們來看看這個Seata的術(shù)語

TC (Transaction Coordinator) - 事務協(xié)調(diào)者

維護全局和分支事務的狀態(tài),驅(qū)動全局事務提交或回滾。

TM (Transaction Manager) - 事務管理器

定義全局事務的范圍:開始全局事務、提交或回滾全局事務。

RM (Resource Manager) - 資源管理器

管理分支事務處理的資源,與TC交談以注冊分支事務和報告分支事務的狀態(tài),并驅(qū)動分支事務提交或回滾。

其實如果看上面的圖,我們看看這個處理過程

圖片圖片

接下來我們直接來實戰(zhàn)試一下這個Seata的實際操作。

Seata-Server安裝

我們直接用官網(wǎng)的Demo來學習一下

快速開始

我們挑選一個不是那么新的版本,畢竟都知道,新版本中那可是有很多坑的,一個不留神就踩進去,學習還是穩(wěn)一手。

圖片圖片

下載完成,直接解壓,然后去找到文件目錄,

我們直接找到config下的 file.config,

修改file.conf

主要就是修改,事務日志存儲模式為db+數(shù)據(jù)庫連接信息

我們直接把mode改為db

然后db改為我們自己的數(shù)據(jù)庫地址

圖片圖片

然后我們?nèi)グ褦?shù)據(jù)庫給創(chuàng)建好,建表語句在config下的 readme文件中。

圖片圖片

我們找到 server 的 Mysql 的建表語句

圖片圖片

ok了 建表成功。

修改registry.conf

還是同樣的目錄,我們再修改一下 registry.conf 主要是來修改nacos的信息的,因為 Seata 其實推薦的也是 nacos,所以下面的這個 type 我們直接來改成自己的 naocs 就可以了。

registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"

  nacos {
    application = "seata-server"
    serverAddr = "127.0.0.1:8848"
    group = "SEATA_GROUP"
    namespace = "5518397c-7ea8-4f55-89ca-dacfc6fdf914"
    cluster = "default"
    username = "nacos"
    password = "nacos"
  }

config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos"

  nacos {
    serverAddr = "127.0.0.1:8848"
    namespace = "5518397c-7ea8-4f55-89ca-dacfc6fdf914"
    group = "SEATA_GROUP"
    username = "nacos"
    password = "nacos"
    dataId = "seataServer.properties"
  }
  ...
}

獲取 config.txt 文件

直接獲取config.txt

config.txt

然后我們修改一下store

圖片圖片

配nacos

先從git上面下載 nacos-config.sh,然后推送配置到nacos

nacos-config.sh

把 nacos-config.sh 文件放到 config 下,然后執(zhí)行命令

sh nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP -t 5518397c-7ea8-4f55-89ca-dacfc6fdf914 -u nacos -w nacos

命令的解釋如下:

-h: 注冊到注冊中心的ip
-p: Server rpc 監(jiān)聽端口
-m: 全局事務會話信息存儲模式,file、db、redis,優(yōu)先讀取啟動參數(shù) (Seata-Server 1.3及以上版本支持redis)
-n: Server node,多個Server時,需區(qū)分各自節(jié)點,用于生成不同區(qū)間的transactionId,以免沖突
-e: 多環(huán)境配置參考 http://seata.io/en-us/docs/ops/multi-configuration-isolation.html

圖片圖片

執(zhí)行這個有個前提,那就是registry.conf中的namespace和命令中的必須保持一樣,并且在 nacos中也增加了對應的命名空間,如果你沒有仔細的看文檔,并且沒有對 nacos 中的命名空間做增加的話,那么你就肯定失敗,然后在 nacos 中就是看不到自己的配置情況。

圖片圖片

創(chuàng)建完成之后,就會出現(xiàn)這個命名空間的ID,我們直接來隨機的,然后復制這個ID 到registry.conf中配置一下就可以了。

大家可以看到上面的圖中出現(xiàn)了total-count是98,但是failure-count:1 我們看執(zhí)行完命令后,失敗的是哪個,

nacos-config.sh: line 88: [: too many arguments
Set store.publicKey= failure

這個失敗了,但是有人可能會失敗四個

Set store.publicKey= failure
Set store.redis.sentinel.masterName= failure
Set store.redis.sentinel.sentinelHosts= failure
Set store.redis.password= failure

其實這四個并不影響這個執(zhí)行,因為我們可以去 Nacos 中看配置情況,

圖片圖片

因為了不起之季節(jié)吧這個 store.redis 的內(nèi)容給全注釋了。所以只有一個沒成功。

接下來我們就可以啟動seata了。

啟動 seata

我們這里先不考慮這個client,因為可以在我們后面使用的時候再去添加這個

直接執(zhí)行 bin/seata-server.bat 文件,然后看看能啟動成功不。

圖片圖片

當我們看到這個 Server started 的時候,我們就知道,我們的 seata 的服務端就啟動成功了,到這里我們的 seata 的安裝和配置就算是已經(jīng)完成了。

你學會了么?

責任編輯:武曉燕 來源: Java極客技術(shù)
相關(guān)推薦

2020-08-27 07:34:50

Zookeeper數(shù)據(jù)結(jié)構(gòu)

2024-02-01 11:57:31

this指針代碼C++

2023-12-29 15:28:18

磁盤固態(tài)硬盤

2019-10-12 08:59:36

軟件DevOps技術(shù)

2023-11-20 08:18:49

Netty服務器

2023-04-26 15:43:24

容器編排容器編排工具

2018-11-13 09:56:52

TomcatServerWeb應用服務器

2023-11-06 08:16:19

APM系統(tǒng)運維

2022-06-08 08:11:56

威脅建模網(wǎng)絡安全網(wǎng)絡攻擊

2022-11-11 19:09:13

架構(gòu)

2022-02-25 07:34:36

MQTT協(xié)議RabbitMQ

2023-11-22 16:10:59

編程語言機器語言

2023-12-26 07:33:45

Redis持久化COW

2022-10-28 13:48:24

Notebook數(shù)據(jù)開發(fā)機器學習

2019-07-02 11:01:35

SpringBean配置

2023-11-22 16:08:48

2019-04-19 14:03:52

APISDK接口

2024-01-19 11:53:29

文件系統(tǒng)操作系統(tǒng)存儲

2022-02-24 07:34:10

SSL協(xié)議加密

2023-08-26 20:56:02

滑動窗口協(xié)議
點贊
收藏

51CTO技術(shù)棧公眾號