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 の例

推薦する

Vue 3.0 カスタムディレクティブの使い方

目次1. カスタム指示1. グローバルカスタム指示を登録する2. グローバルカスタム指示を使用する3...

Nginx ベースのアクセス制御と接続制限の実装

序文Nginxの組み込みモジュールは、同時リクエスト数の制限とリクエストのソースの制限をサポートして...

CSS ラベルモード表示プロパティの詳細な説明

コードは次のようになります。 <!DOCTYPE html> <html> ...

CSS3 で虫眼鏡効果を模倣するいくつかの方法の原理の分析

記事のタイトルが「模造虫眼鏡」なのはなぜですか?今日お話ししたいのは、一般的に言われているような、マ...

Nginx リバース プロキシを使用してクロスドメイン問題を解決する方法の詳細な説明

質問前回のクロスドメイン リソース共有に関する記事では、ドメイン間で Cookie を送信する場合、...

ブログデザイン ウェブデザイン デビュー

私がデザインした最初の Web ページは次のとおりです。 私はこの業界に7年間在籍し、プログラミング...

mysql ビュー関数の分析と使用例

この記事では、例を使用して MySQL ビューの機能と使用方法を説明します。ご参考までに、詳細は以下...

Centos での TCPWrappers アクセス制御の実装

1. TCP ラッパーの概要TCP Wrappers は TCP サービス プログラムを「ラップ」し...

Winにmysqlをインストールする詳細な手順

この記事では、参考までにWinにmysqlをインストールする詳細な手順を紹介します。具体的な内容は次...

HTML テーブル マークアップ チュートリアル (29): セルのライト境界線の色属性 BORDERCOLORLIGHT

セルでは、明るい境界線の色を個別に定義できます。 > 基本構文<TD ボーダーカラーライ...

記事では、js を使用して弾幕効果を実現する方法を説明します

目次新しい HTML ファイルを作成します。初期テンプレートを作成するHTML の追加CSS パディ...

Tomcat 経由で JMX 監視を有効にする方法

シミュレーション環境を構築する:オペレーティングシステム: centos7メモリ: 1G 1.8.0...

JS オブジェクト コンストラクター Object.freeze

目次概要例1) オブジェクトをフリーズする2) 配列をフリーズする3) 浅い凍結4) ディープフリー...

JavaScript の静的スコープと動的スコープを例を使って説明します

目次序文静的スコープと動的スコープ静的スコープ実行プロセス動的スコープ実行プロセスエクササイズ練習1...

MySQL ページングクエリ最適化テクニック

ページング クエリを使用するアプリケーションでは、LIMIT と OFFSET を含むクエリが非常に...