SEATAトランザクションサービスDockerのデプロイ手順の詳細説明

SEATAトランザクションサービスDockerのデプロイ手順の詳細説明

1. データベース認証ステートメントを作成する

> データベース seata を作成します。
> seata.* のすべての権限を seata_user@'%' に付与 ('123455' で識別)

2. データベーステーブル作成ステートメント

cat create_seata_table.sql

-- -------------------------------- storeMode が 'db' の場合に使用されるスクリプト --------------------------------
-- GlobalSessionデータを保存するテーブル
存在しない場合はテーブルを作成 `global_table`
(
  `xid` VARCHAR(128) NOT NULL、
  `transaction_id` BIGINT、
  `status` TINYINT NOT NULL、
  `アプリケーションID` VARCHAR(32)、
  `transaction_service_group` VARCHAR(32)、
  `トランザクション名` VARCHAR(128)、
  `タイムアウト` INT,
  `begin_time` BIGINT、
  `application_data` VARCHAR(2000)、
  `gmt_create` 日付時刻、
  `gmt_modified` 日付時刻、
  主キー (`xid`)、
  キー `idx_gmt_modified_status` (`gmt​​_modified`, `status`),
  キー `idx_transaction_id` (`transaction_id`)
) エンジン = InnoDB
 デフォルト文字セット = utf8;

-- BranchSessionデータを保存するテーブル
`branch_table` が存在しない場合はテーブルを作成します
(
  `branch_id` BIGINT NOT NULL、
  `xid` VARCHAR(128) NOT NULL、
  `transaction_id` BIGINT、
  `リソースグループID` VARCHAR(32)、
  `resource_id` VARCHAR(256)、
  `branch_type` VARCHAR(8)、
  `ステータス` TINYINT、
  `client_id` VARCHAR(64)、
  `application_data` VARCHAR(2000)、
  `gmt_create` 日付時刻(6)、
  `gmt_modified` 日付時刻(6)、
  主キー (`branch_id`)、
  キー `idx_xid` (`xid`)
) エンジン = InnoDB
 デフォルト文字セット = utf8;

-- ロックデータを保存するテーブル
存在しない場合はテーブルを作成する `lock_table`
(
  `row_key` VARCHAR(128) NOT NULL、
  `xid` VARCHAR(96)、
  `transaction_id` BIGINT、
  `branch_id` BIGINT NOT NULL、
  `resource_id` VARCHAR(256)、
  `テーブル名` VARCHAR(32)、
  `pk` VARCHAR(36)、
  `gmt_create` 日付時刻、
  `gmt_modified` 日付時刻、
  主キー (`row_key`)、
  キー `idx_branch_id` (`branch_id`)
) エンジン = InnoDB
 デフォルト文字セット = utf8;

3. テーブル作成ステートメントをインポートする

mysql -useata_user -p seata < create_seata_table.sql

4. FILE.CONFはデータベース接続情報を変更します

cat /home/seata-server/resources/file.conf
## トランザクション ログ ストア。seata-server でのみ使用されます。
店 {
 ## 保存モード: ファイル、DB、Redis
 モード = "db"
 ##rsa 復号化公開鍵
 公開キー = ""
 ## ファイルストアプロパティ
 ファイル {
  ##保存場所のディレクトリ
  dir = "セッションストア"
  # セッション サイズを分岐します。超過した場合はまずロックキーの圧縮を試みます。それでも超過した場合は例外がスローされます。
  最大ブランチセッションサイズ = 16384
  # globe セッション サイズ。超過すると例外がスローされます
  最大グローバルセッションサイズ = 512
  # ファイルバッファサイズ、超過した場合は新しいバッファを割り当てます
  ファイル書き込みバッファキャッシュサイズ = 16384
  # バッチ読み取りサイズを回復するとき
  セッションリロード読み取りサイズ = 100
  # 非同期、同期
  フラッシュディスクモード = 非同期
 }

 ## データベースストアプロパティ
 デシベル{
  ## DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) などの javax.sql.DataSource の実装。
  データソース = "ドルイド"
  ##mysql/oracle/postgresql/h2/oceanbase など
  dbType = "mysql"
  ドライバークラス名 = "com.mysql.jdbc.Driver"
  ## データ保存に mysql を使用する場合は、jdbc 接続パラメータに rewriteBatchedStatements=true を追加することをお勧めします。
  url = "jdbc:mysql://192.168.56.30:3306/seata?rewriteBatchedStatements=true" ユーザー = "seata_user"
  パスワード = "123455"
  最小接続数 = 5
  最大接続数 = 100
  グローバルテーブル = "グローバルテーブル"
  branchTable = "ブランチテーブル"
  lockTable = "ロックテーブル"
  クエリ制限 = 100
  最大待機時間 = 5000
 }

 ## redis ストアプロパティ
 レディス{
  ## redis モード: シングル、センチネル
  モード = "シングル"
  ## シングルモードプロパティ
  シングル {
   ホスト = "127.0.0.1"
   ポート = "6379"
  }
  ## センチネルモードプロパティ
  センチネル {
   マスター名 = ""
   ## たとえば「10.28.235.65:26379,10.28.235.65:26380,10.28.235.65:26381」
   センチネルホスト = ""
  }
  パスワード = ""
  データベース = "0"
  最小接続 = 1
  最大接続数 = 10
  最大合計 = 100
  クエリ制限 = 100
 }
}

5. REGISTRY.CONFは登録されたNACOS接続情報を変更します。

cat /home/seata-server/resources/registry.conf
レジストリ {
 # ファイル、nacos、eureka、redis、zk、consul、etcd3、sofa
 タイプ = "ナコス"
 loadBalance = "ランダムロードバランス"
 負荷バランス仮想ノード = 10

 ナコス
  アプリケーション = "es-provider-seata"
  サーバーアドレス = "192.168.56.30:8848"
  グループ = "DEFAULT_GROUP"
  名前空間 = ""
  クラスター = "デフォルト"
  ユーザー名 = "nacos"
  パスワード = "nacos"
 }
 ユーレカ
  サービス URL = "http://localhost:8761/eureka"
  アプリケーション = "デフォルト"
  重み = "1"
 }
 レディス{
  サーバーアドレス = "localhost:6379"
  デシベル = 0
  パスワード = ""
  クラスター = "デフォルト"
  タイムアウト = 0
 }
 ずっ
  クラスター = "デフォルト"
  サーバーアドレス = "127.0.0.1:2181"
  セッションタイムアウト = 6000
  接続タイムアウト = 2000
  ユーザー名 = ""
  パスワード = ""
 }
 領事 {
  クラスター = "デフォルト"
  サーバーアドレス = "127.0.0.1:8500"
  aclトークン = ""
 }
 etcd3 {
  クラスター = "デフォルト"
  サーバーアドレス = "http://localhost:2379"
 }
 ソファー
  サーバーアドレス = "127.0.0.1:9603"
  アプリケーション = "デフォルト"
  地域 = "DEFAULT_ZONE"
  データセンター = "DefaultDataCenter"
  クラスター = "デフォルト"
  グループ = "SEATA_GROUP"
  アドレス待機時間 = "3000"
 }
 ファイル {
  名前 = "file.conf"
 }
}

設定{
 # ファイル、nacos、apollo、zk、consul、etcd3
 タイプ = "ファイル"

 ナコス
  サーバーアドレス = "127.0.0.1:8848"
  名前空間 = ""
  グループ = "SEATA_GROUP"
  ユーザー名 = ""
  パスワード = ""
  データID = "seataServer.properties"
 }
 領事 {
  サーバーアドレス = "127.0.0.1:8500"
  aclトークン = ""
 }
 アポロ
  appId = "seata-server"
  ## apolloConfigServiceはapolloMetaをカバーします
  アポロメタ = "http://192.168.1.204:8801"
  apolloConfigService = "http://192.168.1.204:8080"
  名前空間 = "アプリケーション"
  apolloアクセスキーシークレット = ""
  クラスター = "seata"
 }
 ずっ
  サーバーアドレス = "127.0.0.1:2181"
  セッションタイムアウト = 6000
  接続タイムアウト = 2000
  ユーザー名 = ""
  パスワード = ""
 }
 etcd3 {
  サーバーアドレス = "http://localhost:2379"
 }
 ファイル {
  名前 = "file.conf"
 }
}

6. DOCKERデプロイメントサービス

docker run --name seata-server-latest -p 8091:8091 \
-v /home/seata-server/resources/file.conf:/seata-server/resources/file.conf \ 
-v /home/seata-server/resources/registry.conf:/seata-server/resources/registry.conf \
-v /home/seata-server/logs:/root/logs \
seataio/seata-server:1.3.0

Seata トランザクション サービス Docker のデプロイの詳細なプロセスに関するこの記事はこれで終わりです。Seata Docker デプロイの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Springboot Cloud が Eureka を使用して分散トランザクション コンポーネント Seata を統合する方法
  • springcloud での seata-1.4.0 の詳細なインストールと使用
  • SpringCloud-Alibaba-Seata分散トランザクションの詳細な説明
  • SeataがMySQL 8バージョンを使用できない問題を解決する方法
  • Springcloud seata 分散トランザクション実装コード分析
  • SpringCloud Alibaba Seata(コレクションエディション)
  • DubboとSeataに基づくSpringBootの分散トランザクションソリューションの詳細な説明
  • Springcloud seata nacos 環境構築プロセス図
  • SpringBoot+Dubbo+Seata分散トランザクションの詳細な説明
  • Seataの実装原理を理解するための1つの記事

<<:  ウェブページレイアウトデザインのシンプルな原則

>>:  ブラウザのスクロールバーのスタイルを変更するための純粋な CSS の例

推薦する

HTML で 2 列レイアウトを実装する方法の例 (左側は固定幅、右側は適応幅)

HTMLは2列レイアウトを実装し、左側は固定幅、右側は適応幅です。実装1: <スタイル>...

Vueのトランジションとアニメーションの深い理解

1. DOM要素を挿入、更新、または削除するときに、適切な場合は要素にスタイルクラス名を追加します。...

Dockerコンテナのインポ​​ートとエクスポートに関するチュートリアル

背景Docker の人気は、コンテナの共有と移植が容易であることと密接に関係しています。ユーザーは、...

Dockerコンテナでユーザーを切り替えるときに権限が不足する問題を解決する方法

Docker コンテナでユーザーを切り替えると、権限が不十分であるというメッセージが表示されます。解...

シンプルなカルーセル効果を実現するJavaScript

カルーセルとは何ですか?カルーセル: モジュールまたはウィンドウで、コンピューターでマウスをクリック...

ウェブページ作成時のHTMLタグの使用に注意してください

HTML はプレゼンテーションからコンテンツへの移行を試みており、コンテンツの意味(HTML) とプ...

Vue でのルーティングガードの具体的な使用法

目次1. グローバルガード1.1 グローバルフロントガード1.2 グローバルポストルートガード1.3...

Zabbixで監視する必要があるホストを追加するための詳細な手順

監視ホストの追加ホスト 192.168.179.104 が zabbix 監視項目に追加されます (...

MySQL 5.7 の一時テーブルスペースを使用して落とし穴を回避する方法

導入MySQL 5.7 は、SSL/TLS と全体的なセキュリティ開発におけるいくつかの重要な変更に...

Vue + Axios リクエストインターフェース方式とパラメータ渡し方式の詳しい説明

目次1. リクエストを取得する: 2. 投稿リクエスト: 3. 拡張と補足Vue スキャフォールディ...

Windows に MySQL をインストールする方法のグラフィック チュートリアル

概要: この記事では主に、Windows 環境に MySQL をインストールする方法について説明しま...

Alibaba Cloud Serverにプログラムをデプロイし、ドメイン名を使用して直接アクセスする方法の詳細な説明

何もすることがなかったので、学習用に最も安いAlibaba Cloudサーバーを購入しました。年間3...

docker CMD/ENTRYPOINT が sh スクリプトを実行する問題の解決策: not found/run.sh:

Dockerfile の設定に問題はありませんが、ENTRYPOINT コマンドを実行するとエラー...

Debian Dockerコンテナにcrontabスケジュールタスクを追加する

現在、DockerイメージのほとんどはDebianベースです # cat /etc/issue De...

SpringBoot アプリケーションの Docker デプロイメントの実装手順

目次序文DockerファイルDockerfile とは何ですか? Dockerfile 構文Spri...