Detaillierte Erläuterung des Bereitstellungsprozesses des SEATA-Transaktionsdienstes Docker

Detaillierte Erläuterung des Bereitstellungsprozesses des SEATA-Transaktionsdienstes Docker

1. Erstellen Sie eine Datenbankautorisierungserklärung

> Datenbank seata erstellen;
> gewähre seata_user@'%', identifiziert durch '123455', alles auf seata.*

2. Anweisung zum Erstellen einer Datenbanktabelle

Katze create_seata_table.sql

---------------------------------- Das Skript, das verwendet wird, wenn der StoreMode „db“ ist ---------------------------------
-- die Tabelle zum Speichern von GlobalSession-Daten
TABELLE ERSTELLEN, WENN `global_table` NICHT VORHANDEN IST
(
  `xid` VARCHAR(128) NICHT NULL,
  `Transaktions-ID` BIGINT,
  `status` TINYINT NICHT NULL,
  `Anwendungs-ID` VARCHAR(32),
  `Transaktionsservicegruppe` VARCHAR(32),
  `Transaktionsname` VARCHAR(128),
  `Zeitüberschreitung` INT,
  `begin_time` BIGINT,
  `Anwendungsdaten` VARCHAR(2000),
  `gmt_create` DATETIME,
  `gmt_modified` DATETIME,
  PRIMÄRSCHLÜSSEL (`xid`),
  SCHLÜSSEL `idx_gmt_modified_status` (`gmt_modified`, `status`),
  SCHLÜSSEL `idx_transaction_id` (`Transaktions-ID`)
) ENGINE = InnoDB
 STANDARD-ZEICHENSATZ = utf8;

-- die Tabelle zum Speichern von BranchSession-Daten
TABELLE ERSTELLEN, WENN `branch_table` NICHT VORHANDEN IST
(
  `branch_id` BIGINT NICHT NULL,
  `xid` VARCHAR(128) NICHT NULL,
  `Transaktions-ID` BIGINT,
  `Ressourcengruppen-ID` VARCHAR(32),
  `Ressourcen-ID` VARCHAR(256),
  `Zweigtyp` VARCHAR(8),
  `status` TINYINT,
  `client_id` VARCHAR(64),
  `Anwendungsdaten` VARCHAR(2000),
  `gmt_create` DATETIME(6),
  `gmt_modified` DATETIME(6),
  PRIMÄRSCHLÜSSEL (`branch_id`),
  SCHLÜSSEL `idx_xid` (`xid`)
) ENGINE = InnoDB
 STANDARD-ZEICHENSATZ = utf8;

- die Tabelle zur Speicherung der Sperrdaten
TABELLE ERSTELLEN, WENN `lock_table` NICHT VORHANDEN IST
(
  `row_key` VARCHAR(128) NICHT NULL,
  `xid` VARCHAR(96),
  `Transaktions-ID` BIGINT,
  `branch_id` BIGINT NICHT NULL,
  `Ressourcen-ID` VARCHAR(256),
  `Tabellenname` VARCHAR(32),
  `pk` VARCHAR(36),
  `gmt_create` DATETIME,
  `gmt_modified` DATETIME,
  PRIMÄRSCHLÜSSEL (`row_key`),
  SCHLÜSSEL `idx_branch_id` (`branch_id`)
) ENGINE = InnoDB
 STANDARD-ZEICHENSATZ = utf8;

3. Anweisungen zum Importieren von Tabellen

mysql -useata_user -p seata < create_seata_table.sql

4. FILE.CONF ändert Datenbankverbindungsinformationen

cat /home/seata-server/resources/file.conf
## Transaktionsprotokollspeicher, wird nur im Seata-Server verwendet
speichern {
 ## Speichermodus: Datei, Datenbank, Redis
 Modus = "db"
 ##öffentlicher RSA-Entschlüsselungsschlüssel
 öffentlicher Schlüssel = ""
 ## Dateispeichereigenschaft
 Datei {
  ##Speicherortverzeichnis
  dir = "sessionStore"
  # Branch-Sitzungsgröße. Wenn diese überschritten wird, versuchen Sie zuerst, den Sperrschlüssel zu komprimieren. Wenn diese überschritten wird, werden weiterhin Ausnahmen ausgelöst.
  maxBranchSessionSize = 16384
  # Globe-Sitzungsgröße, bei Überschreitung werden Ausnahmen ausgelöst
  maxGlobalSessionSize = 512
  # Dateipuffergröße, bei Überschreitung neuen Puffer zuweisen
  Dateischreibpuffer-Cachegröße = 16384
  # beim Wiederherstellen der Batch-Lesegröße
  sessionReloadReadSize = 100
  # asynchron, synchron
  FlushDiskMode = asynchron
 }

 ## Datenbankspeichereigenschaft
 db {
  ## die Implementierung von javax.sql.DataSource, wie z. B. DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) usw.
  Datenquelle = "Druide"
  ##mysql/oracle/postgresql/h2/oceanbase usw.
  dbTyp = "mysql"
  TreiberKlassenname = "com.mysql.jdbc.Driver"
  ## Wenn Sie MySQL zum Speichern der Daten verwenden, empfehlen wir, rewriteBatchedStatements=true in den JDBC-Verbindungsparameter einzufügen.
  URL = "jdbc:mysql://192.168.56.30:3306/seata?rewriteBatchedStatements=true" Benutzer = "seata_user"
  Passwort = "123455"
  minConn = 5
  maxConn = 100
  globalTable = "globale_Tabelle"
  branchTable = "Zweigtabelle"
  lockTable = "Sperrtabelle"
  Abfragelimit = 100
  maxWartezeit = 5000
 }

 ## Redis Store-Eigenschaft
 redis {
  ## Redis-Modus: Single, Sentinel
  Modus = "Einzeln"
  ## Einzelmodus-Eigenschaft
  einzel {
   Host = "127.0.0.1"
   Port = "6379"
  }
  ## Sentinel-Modus-Eigenschaft
  Wächter {m}
   masterName = ""
   ## wie etwa „10.28.235.65:26379,10.28.235.65:26380,10.28.235.65:26381“
   sentinelHosts = ""
  }
  Passwort = ""
  Datenbank = "0"
  minConn = 1
  maxConn = 10
  maxGesamt = 100
  Abfragelimit = 100
 }
}

5. REGISTRY.CONF ändert die registrierten NACOS-Verbindungsinformationen

cat /home/seata-server/resources/registry.conf
Registrierung {
 # Datei, Nacos, Eureka, Redis, Zk, Konsul, etcd3, Sofa
 Typ = "nacos"
 loadBalance = "ZufälligeLastverteilung"
 loadBalanceVirtualNodes = 10

 nacos
  Anwendung = "es-provider-seata"
  serverAddr = "192.168.56.30:8848"
  Gruppe = "DEFAULT_GROUP"
  Namespace = ""
  Cluster = "Standard"
  Benutzername = "nacos"
  Passwort = "nacos"
 }
 Eureka
  serviceUrl = "http://localhost:8761/eureka"
  Anwendung = "Standard"
  Gewicht = "1"
 }
 redis {
  serverAddr = "localhost:6379"
  db = 0
  Passwort = ""
  Cluster = "Standard"
  Zeitüberschreitung = 0
 }
 zk
  Cluster = "Standard"
  Serveradresse = "127.0.0.1:2181"
  SitzungsTimeout = 6000
  VerbindungsTimeout = 2000
  Benutzername = ""
  Passwort = ""
 }
 Konsul {
  Cluster = "Standard"
  Serveradresse = "127.0.0.1:8500"
  aclToken = ""
 }
 etcd3 {
  Cluster = "Standard"
  Server-Adresse = "http://localhost:2379"
 }
 Sofa
  Serveradresse = "127.0.0.1:9603"
  Anwendung = "Standard"
  Region = "DEFAULT_ZONE"
  Rechenzentrum = "StandardRechenzentrum"
  Cluster = "Standard"
  Gruppe = "SEATA_GROUP"
  AdresseWartezeit = "3000"
 }
 Datei {
  Name = "Datei.conf"
 }
}

Konfiguration {
 # Datei, Nacos, Apollo, ZK, Konsul, etcd3
 Typ = "Datei"

 nacos
  Serveradresse = "127.0.0.1:8848"
  Namespace = ""
  Gruppe = "SEATA_GROUP"
  Benutzername = ""
  Passwort = ""
  Daten-ID = "seataServer.properties"
 }
 Konsul {
  Serveradresse = "127.0.0.1:8500"
  aclToken = ""
 }
 Apollo
  appId = "seata-server"
  ## apolloConfigService wird apolloMeta abdecken
  apolloMeta = "http://192.168.1.204:8801"
  apolloConfigService = "http://192.168.1.204:8080"
  Namespace = "Anwendung"
  apolloAccesskeySecret = ""
  Cluster = "seata"
 }
 zk
  Serveradresse = "127.0.0.1:2181"
  SitzungsTimeout = 6000
  VerbindungsTimeout = 2000
  Benutzername = ""
  Passwort = ""
 }
 etcd3 {
  Server-Adresse = "http://localhost:2379"
 }
 Datei {
  Name = "Datei.conf"
 }
}

6. DOCKER-Bereitstellungsdienst

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

Dies ist das Ende dieses Artikels über den detaillierten Prozess der Bereitstellung des Seata-Transaktionsdienstes Docker. Weitere relevante Inhalte zur Bereitstellung von Seata Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Wie Springboot Cloud Eureka verwendet, um die verteilte Transaktionskomponente Seata zu integrieren
  • Detaillierte Installation und Verwendung von seata-1.4.0 in Springcloud
  • Detaillierte Erläuterung der verteilten Transaktionen SpringCloud-Alibaba-Seata
  • So lösen Sie das Problem, dass Seata die MySQL 8-Version nicht verwenden kann
  • Codeanalyse der verteilten Transaktionsimplementierung von Springcloud Seata
  • SpringCloud Alibaba Seata (Sammlungsausgabe)
  • Detaillierte Erläuterung der verteilten Transaktionslösung von SpringBoot basierend auf Dubbo und Seata
  • Konstruktionsprozessdiagramm für die Springcloud-Seata-Nacos-Umgebung
  • Detaillierte Erläuterung der verteilten Transaktionen von SpringBoot + Dubbo + Seata
  • Ein Artikel zum Verständnis des Implementierungsprinzips von Seata

<<:  Einfache Prinzipien für die Gestaltung des Webseiten-Layouts

>>:  Beispiel für reines CSS zum Ändern des Bildlaufleistenstils des Browsers

Artikel empfehlen

So ändern Sie den Benutzer und die Gruppe einer Datei in Linux

Wenn unter Linux eine Datei erstellt wird, ist de...

In diesem Artikel erfahren Sie mehr über NULL in MySQL

Inhaltsverzeichnis Vorwort NULL in MySQL 2 NULL b...

Spielen Sie mit der Connect-Funktion mit Timeout in Linux

Im vorherigen Artikel haben wir mit Timeouts unte...

Mysql-Fehler: Lösung für zu viele Verbindungen

Zu viele Verbindungen zur MySQL-Datenbank Dieser ...

...

Detaillierte Erläuterung des Redo-Logs und Undo-Logs in MySQL

Die wichtigsten Protokolle im MySQL-Protokollsyst...

So verwenden Sie Docker zum lokalen Verpacken und Bereitstellen von Images

Erste Verwendung von Docker zum lokalen Verpacken...

Detaillierte Erklärung zweier zu beachtender Punkte bei vue3: Setup

Inhaltsverzeichnis In vue2 In vue3 Hinweise zur E...

JavaScript-Sandbox-Erkundung

Inhaltsverzeichnis 1. Szenario 2. Grundfunktionen...

So gestalten Sie die Homepage von Tudou.com

<br />Ich arbeite seit mehreren Jahren im Fr...