段階的に教えて、docker は seata をインストールします

Docker のインストール シートのチュートリアル

分散トランザクションの n 種類の処理ソリューションは誰もが知っていますが、より便利なものは seata に属しています. Seata は、高性能で使いやすい分散トランザクション サービスを提供することに特化したオープン ソースの分散トランザクション ソリューションです。Seata は、 ATTCCSAGA 、およびXAトランザクション モードをユーザーに提供し、ユーザー向けのワンストップ分散ソリューションを作成します。

  • ビジネスへの侵入なし: つまり、技術アーキテクチャ上のマイクロサービスによって引き起こされる分散トランザクションの問題がビジネスに侵入することを減らします。
  • 高パフォーマンス: 分散トランザクション ソリューションによるパフォーマンスの消費を削減します。

シートのいくつかの用語:

  • TC (Transaction Coordinator) : トランザクションコーディネーター。グローバル トランザクションのコミットとロールバックのために、グローバル ブランチ トランザクションの状態を管理します。
  • TM (トランザクション マネージャー) : トランザクション マネージャー。トランザクションの開始、コミット、またはロールバックに使用されます。
  • RM (リソース マネージャー) : リソース マネージャー。これは、ブランチ トランザクションのリソース管理に使用され、ブランチ トランザクションをTCに登録し、ブランチ トランザクションのステータスを報告し、ブランチ トランザクションをコミットまたはロールバックするコマンドをTCから受け取ります。

1. seata docker イメージをダウンロードします。

docker pull seataio/seata-server

2. docker イメージを起動する

docker run -d --name seata-server -p 8091:8091 seataio/seata-server

3. docker seata の起動後にイメージ ファイルを /config/docker-data/seata にコピーします。

cd ..

mkdir config/docker-data/seata

docker cp seata-server:/seata-server /docker-data/seata

4. 構成ファイル application.yml を変更します。application.example.yml を参照してください。

#  Copyright 1999-2019 Seata.io Group.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
​
server:
  port: 7091
​
spring:
  application:
    name: seata-server
​
logging:
  config: classpath:logback-spring.xml
  file:
    path: ${user.home}/logs/seata
  extend:
    logstash-appender:
      destination: 127.0.0.1:4560
    kafka-appender:
      bootstrap-servers: 127.0.0.1:9092
      topic: logback_to_logstash
​
seata:
  config:
    # support: nacos 、 consul 、 apollo 、 zk  、 etcd3
    type: file
    nacos:
      server-addr: 127.0.0.1:8848
      namespace:
      group: SEATA_GROUP
      username:
      password:
      ##if use MSE Nacos with auth, mutex with username/password attribute
      #access-key: ""
      #secret-key: ""
      data-id: seataServer.properties
    consul:
      server-addr: 127.0.0.1:8500
      acl-token:
      key: seata.properties
    apollo:
      appId: seata-server
      apollo-meta: http://192.168.1.204:8801
      apollo-config-service: http://192.168.1.204:8080
      namespace: application
      apollo-access-key-secret:
      cluster: seata
    zk:
      server-addr: 127.0.0.1:2181
      session-timeout: 6000
      connect-timeout: 2000
      username:
      password:
      node-path: /seata/seata.properties
    etcd3:
      server-addr: http://localhost:2379
      key: seata.properties
  registry:
    # support: nacos 、 eureka 、 redis 、 zk  、 consul 、 etcd3 、 sofa
    type: file
    preferred-networks: 30.240.*
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      group: SEATA_GROUP
      namespace:
      cluster: default
      username:
      password:
      ##if use MSE Nacos with auth, mutex with username/password attribute
      #access-key: ""
      #secret-key: ""
    eureka:
      service-url: http://localhost:8761/eureka
      application: default
      weight: 1
    redis:
      server-addr: localhost:6379
      db: 0
      password:
      cluster: default
      timeout: 0
    zk:
      cluster: default
      server-addr: 127.0.0.1:2181
      session-timeout: 6000
      connect-timeout: 2000
      username: ""
      password: ""
    consul:
      cluster: default
      server-addr: 127.0.0.1:8500
      acl-token:
    etcd3:
      cluster: default
      server-addr: http://localhost:2379
    sofa:
      server-addr: 127.0.0.1:9603
      application: default
      region: DEFAULT_ZONE
      datacenter: DefaultDataCenter
      cluster: default
      group: SEATA_GROUP
      address-wait-time: 3000
​
  server:
    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
    max-commit-retry-timeout: -1
    max-rollback-retry-timeout: -1
    rollback-retry-timeout-unlock-enable: false
    enable-check-auth: true
    enable-parallel-request-handle: true
    retry-dead-threshold: 130000
    xaer-nota-retry-timeout: 60000
    recovery:
      committing-retry-period: 1000
      async-committing-retry-period: 1000
      rollbacking-retry-period: 1000
      timeout-retry-period: 1000
    undo:
      log-save-days: 7
      log-delete-period: 86400000
    session:
      branch-async-queue-size: 5000 #branch async remove queue size
      enable-branch-async-remove: false #enable to asynchronous remove branchSession
  store:
    # support: file 、 db 、 redis
    mode: file
    session:
      mode: file
    lock:
      mode: file
    file:
      dir: sessionStore
      max-branch-session-size: 16384
      max-global-session-size: 512
      file-write-buffer-cache-size: 16384
      session-reload-read-size: 100
      flush-disk-mode: async
    db:
      datasource: druid
      db-type: mysql
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true
      user: mysql
      password: mysql
      min-conn: 5
      max-conn: 100
      global-table: global_table
      branch-table: branch_table
      lock-table: lock_table
      distributed-lock-table: distributed_lock
      query-limit: 100
      max-wait: 5000
    redis:
      mode: single
      database: 0
      min-conn: 1
      max-conn: 10
      password:
      max-total: 100
      query-limit: 100
      single:
        host: 127.0.0.1
        port: 6379
      sentinel:
        master-name:
        sentinel-hosts:
  metrics:
    enabled: false
    registry-type: compact
    exporter-list: prometheus
    exporter-prometheus-port: 9898
  transport:
    rpc-tc-request-timeout: 30000
    enable-tc-server-batch-send-response: false
    shutdown:
      wait: 3
    thread-factory:
      boss-thread-prefix: NettyBoss
      worker-thread-prefix: NettyServerNIOWorker
      boss-thread-size: 1

5.古いコンテナをシャットダウンして削除する

docker stop xxxx

docker rm xxxx

6. 新しいコンテナを再起動します

docker run -d --restart always --name seata-server -p 8091:8091 -v /config/docker-data/seata/seata-server -e SEATA_IP=[公网ip] -e SEATA_PORT=8091 seataio/seata-server

その後、プロジェクトで関連する操作を実行できます。

おすすめ

転載: blog.csdn.net/qq_31671187/article/details/127865221