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

Detaillierte Erläuterung der MySQL 8.0-Wörterbuchtabellenerweiterung

Das Datenwörterbuch in MySQL ist eine der wichtig...

Tutorial zu HTML-Tabellen-Tags (13): Regeln für interne Rahmenstilattribute

Mit REGELN kann die Art der inneren Rahmen der Ta...

40 Schriftarten, empfohlen für berühmte Website-Logos

Wissen Sie, welche Schriftarten in den Logo-Desig...

JS implementiert einfachen Kalendereffekt

In diesem Artikel wird der spezifische JS-Code zu...

Tutorial zum Ändern des Root-Passworts in MySQL 5.7

Versionsupdate, das Passwortfeld im Originalbenut...

Bootstrap FileInput implementiert Bild-Upload-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

HTML-Grundlagen - CSS-Stylesheets, Style-Attribute, Format- und Layoutdetails

1. Position : fest Gesperrte Position (relativ zu...

Detaillierte Analyse des Explain-Ausführungsplans in MySQL

Vorwort Das Schreiben effizienter SQL-Anweisungen...

Erstellen von responsiven E-Mails mit Vue.js und MJML

MJML ist ein modernes E-Mail-Tool, mit dem Entwic...

So kompilieren Sie Nginx neu und fügen Module hinzu

Beim Kompilieren und Installieren von Nginx werde...

Analyse des Problems des Datenverlusts durch erzwungene Aktualisierung von Vuex

vuex-persistenter Zustand Kernprinzip: Alle Vuex-...