接上一篇:Seata 单机环境搭建_01

文章目录

  • 一、整体架构
  • 二、安装步骤
    • 2.1. 创建数据库
    • 2.2. 初始化表结构
    • 2.3. 修改配置文件
    • 2.4. 调整数据库驱动
    • 2.5. 修改配置中心
  • 三、 启动和验证
    • 3.1. 启动nacos
    • 3.2. 启动TC Server
    • 3.3. 验证高可用
一、整体架构

我们来学习部署集群 Seata TC Server,实现高可用,生产环境下必备。在集群时,多个 Seata TC Server 通过 db 数据库,实现全局事务会话信息的共享。

同时,每个 Seata TC Server 可以注册自己到注册中心上,方便应用从注册中心获得到他们。最终我们部署 集群 TC Server 如下图所示:

Seata TC Server 对主流的注册中心都提供了集成,包括zk,sofa,redis,eureka等主流的中间件。考虑到本课程的内容,我们这边使用 Nacos 作为注册中心给大家进行讲解。

二、安装步骤
2.1. 创建数据库

创建名称为seata的数据库

2.2. 初始化表结构

之前我们搭建的seata是基于文件系统的,这次我们搭建高可用集群,需要使用db模式运行seata,就避免不了需要用到一些基本的数据库表。先执行下面的sql语句创建seata需要用到的表

CREATE TABLE IF NOT EXISTS `global_table`
(`xid`                       VARCHAR(128) NOT NULL,`transaction_id`            BIGINT,`status`                    TINYINT      NOT NULL,`application_id`            VARCHAR(32),`transaction_service_group` VARCHAR(32),`transaction_name`          VARCHAR(128),`timeout`                   INT,`begin_time`                BIGINT,`application_data`          VARCHAR(2000),`gmt_create`                DATETIME,`gmt_modified`              DATETIME,PRIMARY KEY (`xid`),KEY `idx_gmt_modified_status` (`gmt_modified`, `status`),KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8;-- the table to store BranchSession data
CREATE TABLE IF NOT EXISTS `branch_table`
(`branch_id`         BIGINT       NOT NULL,`xid`               VARCHAR(128) NOT NULL,`transaction_id`    BIGINT,`resource_group_id` VARCHAR(32),`resource_id`       VARCHAR(256),`branch_type`       VARCHAR(8),`status`            TINYINT,`client_id`         VARCHAR(64),`application_data`  VARCHAR(2000),`gmt_create`        DATETIME(6),`gmt_modified`      DATETIME(6),PRIMARY KEY (`branch_id`),KEY `idx_xid` (`xid`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8;-- the table to store lock data
CREATE TABLE IF NOT EXISTS `lock_table`
(`row_key`        VARCHAR(128) NOT NULL,`xid`            VARCHAR(96),`transaction_id` BIGINT,`branch_id`      BIGINT       NOT NULL,`resource_id`    VARCHAR(256),`table_name`     VARCHAR(32),`pk`             VARCHAR(36),`gmt_create`     DATETIME,`gmt_modified`   DATETIME,PRIMARY KEY (`row_key`),KEY `idx_branch_id` (`branch_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8;
2.3. 修改配置文件

进入seata的安装目录conf文件夹,修改文件file.conf

[root@localhost app]# cd /app/seata/conf/
[[root@localhost conf]# vim file.conf


调整驱动类,url、用户名。密码为自己的

    driverClassName = "com.mysql.cj.jdbc.Driver"url = "jdbc:mysql://127.0.0.1:3306/seata"user = "root"password = "123456"

2.4. 调整数据库驱动

本机安装的是mysql 8.X, 需要下载8.0的connect-java驱动,其他版本的请自行下载。8.X版本的java-mysql的驱动包下载 先进入到lib文件夹,执行wget下载命令

[root@localhost ~]# cd /app/seata/lib/
[root@localhost lib]# wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.19/mysql-connector-java-8.0.20.jar

如果网速慢,也可以直接去本地仓库中复制,然后上传到/lib目录下面即可

再次修改配置文件file.conf 将mysql的driverClassName修改为mysql8.0的驱动类

2.5. 修改配置中心

修改 conf/registry.conf 配置文件,设置使用 Nacos 注册中心。如下图所示

[root@node2 ~]# vim /app/seata/conf/registry.conf

将file调整为nacos,nacos信息调整为自己的nacos信息

命名空间获取方式

三、 启动和验证
3.1. 启动nacos

3.2. 启动TC Server

执行 nohup sh bin/seata-server.sh -p 8091 -n 1 & 命令,启动第一个 TC Server 在后台。

[root@localhost conf]# cd /app/seata
[root@localhost seata]# nohup sh bin/seata-server.sh -p 8091 -n 1 &
[root@localhost seata]# tail -f nohup.out

-p:Seata TC Server 监听的端口。
-n:Server node。在多个 TC Server 时,需区分各自节点,用于生成不同区间的 transactionId 事务编号,以免冲突。
在 nohup.out 文件中,我们看到如下日志,说明启动成功:

之后我们启动另一个节点

执行 nohup sh bin/seata-server.sh -p 8092 -n 2 & 命令,启动第二个 TC Server 在后台

[root@localhost seata]# nohup sh bin/seata-server.sh -p 8092 -n 2 &
[root@localhost seata]# tail -f nohup.out

在 nohup.out 文件中,我们看到如下日志,说明启动成功:

3.3. 验证高可用

之后我们登录到nacos,可以查看到在服务列表中,seata已经成功注册到nacos

并且是两个高可用的节点

接下一篇:Seata 与 Nacos Config配置中心整合_03

Seata 与 Nacos注册中心整合实现集群环境搭建_02相关推荐

  1. consul注册中心高可用集群的搭建经验

    consul简介 Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性: 1.服务发现: Consul的客户端可用提供一个服务,比如 api 或者 ...

  2. 学习笔记之-Kubernetes(K8S)介绍,集群环境搭建,Pod详解,Pod控制器详解,Service详解,数据存储,安全认证,DashBoard

    笔记来源于观看黑马程序员Kubernetes(K8S)教程 第一章 kubernetes介绍 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署 ...

  3. hadoop集群环境搭建准备工作

    一定要注意hadoop和linux系统的位数一定要相同,就是说如果hadoop是32位的,linux系统也一定要安装32位的. 准备工作: 1 首先在VMware中建立6台虚拟机(配置默认即可).这是 ...

  4. 高吞吐消息中间件Kafka集群环境搭建(3台kafka,3台zookeeper)

    高吞吐消息中间件Kafka集群环境搭建(3台kafka,3台zookeeper) 一.集群搭建要求 1.搭建设计 2.分配六台Linux,用于安装拥有三个节点的Kafka集群和三个节点的Zookeep ...

  5. kubernetes集群环境搭建(kubeadm方式)

    1. kubernetes简介 kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2 ...

  6. apache+tomcat集群环境搭建

    apache+tomcat集群环境搭建 1. 什么是集群         简单理解就是:将项目同时部署在多台服务器上(tomcat)运行,通过一个web服务器(Apache/nginx)进行请求分发和 ...

  7. 2W 字详解 Redis 6.0 集群环境搭建实践

    原文链接:https://www.cnblogs.com/hueyxu/p/13884800.html 本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环 ...

  8. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0

    如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...

  9. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十一)NIFI1.7.1安装

    一.nifi基本配置 1. 修改各节点主机名,修改/etc/hosts文件内容. 192.168.0.120master192.168.0.121slave1192.168.0.122 slave2 ...

  10. 『高级篇』docker之DockerSwarm的集群环境搭建(28)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『高级篇』docker之DockerSwarm的集群环境搭建(28) 上次了解了docker Swarm,这次一起动手操作,搭 ...

最新文章

  1. [流媒体]实例解析MMS流媒体协议,下载LiveMediaVideo[4]
  2. java pdf添加透明水印_如何在PDF文件中添加透明水印
  3. tcp/udp socket编程异同
  4. 机器学习实战:GBDT Xgboost LightGBM对比
  5. java html5 上传_HTML5结合ajax实现文件上传以及进度显示
  6. 作者:刘勇,山东农业大学教授、博士生导师。
  7. Qt_数据库基本操作(未完成)
  8. JNI调用两层C++动态库
  9. 图像处理与计算机视觉经典文章
  10. [SDOI2009] HH去散步 (矩阵乘法)
  11. 分布式SQL引擎-----------Inceptor(学习使用)
  12. 二维图像矢量化方法简述
  13. 请教各位大虾:Delphi创建的ActiveForm上的SpeedButton在鼠标离开后没有重画为flat样式
  14. Android 直播 直播播放器选型
  15. 个人角度谈IE10浏览器
  16. 一个免费全格式MP3音乐播放器的工具
  17. 【转】地心历险记 2:神秘岛 迅雷 下载 地址|神秘岛 高清 下载地址
  18. RocketMQ:The producer group has been created before, specify another name please.
  19. GPFS各类排故日志收集汇总
  20. ipad怎么和mac分屏_iPad如何进行分屏多任务操作【详细介绍】

热门文章

  1. linux卸载gmp,开源算法库GMP的安装与调试
  2. 浅谈银行数据仓库:金融主题层建设篇
  3. java操作excel文件_利用Java Excel API读写excel文件
  4. 评测实用的五大资源搜索网站
  5. 机器学习讲堂:分析核函数的原理
  6. SAR ADC和sigma delta ADC的区别
  7. 认识C语言 Day_4 >语句、结构
  8. android studio ----library already exists in VFS 怎么解决?
  9. 专访海航生态科技李书博:全面解读海航容器云
  10. WIN7无签名驱动解决方法