东莞凤岗网站制作,北京西站到北京南站,广东省网站备案要多久,网站未备案 打不开接上一篇#xff1a;Seata 单机环境搭建_01 文章目录一、整体架构二、安装步骤2.1. 创建数据库2.2. 初始化表结构2.3. 修改配置文件2.4. 调整数据库驱动2.5. 修改配置中心三、 启动和验证3.1. 启动nacos3.2. 启动TC Server3.3. 验证高可用一、整体架构
我们来学习部署集群 Se… 接上一篇Seata 单机环境搭建_01 文章目录一、整体架构二、安装步骤2.1. 创建数据库2.2. 初始化表结构2.3. 修改配置文件2.4. 调整数据库驱动2.5. 修改配置中心三、 启动和验证3.1. 启动nacos3.2. 启动TC Server3.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
[rootlocalhost app]# cd /app/seata/conf/
[[rootlocalhost conf]# vim file.conf 调整驱动类url、用户名。密码为自己的 driverClassName com.mysql.cj.jdbc.Driverurl jdbc:mysql://127.0.0.1:3306/seatauser rootpassword 123456 2.4. 调整数据库驱动
本机安装的是mysql 8.X 需要下载8.0的connect-java驱动其他版本的请自行下载。8.X版本的java-mysql的驱动包下载 先进入到lib文件夹执行wget下载命令
[rootlocalhost ~]# cd /app/seata/lib/
[rootlocalhost 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 注册中心。如下图所示
[rootnode2 ~]# vim /app/seata/conf/registry.conf将file调整为nacosnacos信息调整为自己的nacos信息 命名空间获取方式
三、 启动和验证
3.1. 启动nacos 3.2. 启动TC Server
执行 nohup sh bin/seata-server.sh -p 8091 -n 1 命令启动第一个 TC Server 在后台。
[rootlocalhost conf]# cd /app/seata
[rootlocalhost seata]# nohup sh bin/seata-server.sh -p 8091 -n 1
[rootlocalhost seata]# tail -f nohup.out -pSeata TC Server 监听的端口。 -nServer node。在多个 TC Server 时需区分各自节点用于生成不同区间的 transactionId 事务编号以免冲突。 在 nohup.out 文件中我们看到如下日志说明启动成功 之后我们启动另一个节点
执行 nohup sh bin/seata-server.sh -p 8092 -n 2 命令启动第二个 TC Server 在后台
[rootlocalhost seata]# nohup sh bin/seata-server.sh -p 8092 -n 2
[rootlocalhost seata]# tail -f nohup.out 在 nohup.out 文件中我们看到如下日志说明启动成功
3.3. 验证高可用
之后我们登录到nacos可以查看到在服务列表中seata已经成功注册到nacos 并且是两个高可用的节点 接下一篇Seata 与 Nacos Config配置中心整合_03