一般网站的宽度是多少,拼多多网站怎么建设的,黄页查企业名录,大红门网站建设文章目录 前言参考目录版本说明Windows 部署 seata-server1#xff1a;下载压缩包2#xff1a;文件存储模式3#xff1a;db 存储模式3.1#xff1a;建表3.2#xff1a;修改配置文件3.3#xff1a;启动脚本4#xff1a;源码部署 Docker 部署 seata-server #xff08;基… 文章目录 前言参考目录版本说明Windows 部署 seata-server1下载压缩包2文件存储模式3db 存储模式3.1建表3.2修改配置文件3.3启动脚本4源码部署 Docker 部署 seata-server 基于 Jpom1安装 Jpom安装包方式1.1jpom-agent 安装1.2jpom-server 安装1.3访问测试2Jpom Docker部署 seata-server2.1拉取镜像2.2创建容器2.3查看容器日志2.4访问测试2.5启动 Demo 前言
上篇文章上来就是先从事务模式入手使用 seata-server 也是直接用 GitHub 上下载的 zip 解压后的脚本运行的结果也没有好好地说明一下关于 seata-server 的部署因此这篇文章先来补充一下部署的两种方式。
参考目录
Seata 部署指南Jpom - 离线安装实践
版本说明
SeataV1.7.0JpomV2.10.43
Windows 部署 seata-server
这种方式比较简单直接上一篇文章就是用的这种方式。
1下载压缩包
在 GitHub 选择下载需要的版本
2文件存储模式 Server端存储模式store.mode现有file、db、redis三种后续将引入raft,mongodbfile模式无需改动直接启动即可。 直接运行脚本sessionStore 是运行后生成的本地存储文件。 但是文件存储的方式一般很少用本文使用的是 db 存储模式。
3db 存储模式
3.1建表 全局事务–分支事务–全局锁对应表global_table、branch_table、lock_table 在 GitHub 上有 sql 脚本 这里贴一下 mysql.sql 脚本内容
-- -------------------------------- The script used when storeMode is db --------------------------------
-- the table to store GlobalSession data
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_status_gmt_modified (status , gmt_modified),KEY idx_transaction_id (transaction_id)
) ENGINE InnoDBDEFAULT CHARSET utf8mb4;-- 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 utf8mb4;-- the table to store lock data
CREATE TABLE IF NOT EXISTS lock_table
(row_key VARCHAR(128) NOT NULL,xid VARCHAR(128),transaction_id BIGINT,branch_id BIGINT NOT NULL,resource_id VARCHAR(256),table_name VARCHAR(32),pk VARCHAR(36),status TINYINT NOT NULL DEFAULT 0 COMMENT 0:locked ,1:rollbacking,gmt_create DATETIME,gmt_modified DATETIME,PRIMARY KEY (row_key),KEY idx_status (status),KEY idx_branch_id (branch_id),KEY idx_xid (xid)
) ENGINE InnoDBDEFAULT CHARSET utf8mb4;CREATE TABLE IF NOT EXISTS distributed_lock
(lock_key CHAR(20) NOT NULL,lock_value VARCHAR(20) NOT NULL,expire BIGINT,primary key (lock_key)
) ENGINE InnoDBDEFAULT CHARSET utf8mb4;INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES (AsyncCommitting, , 0);
INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES (RetryCommitting, , 0);
INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES (RetryRollbacking, , 0);
INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES (TxTimeoutCheck, , 0);3.2修改配置文件
路径
seata/conf/application.yml可以从 application.example.yml 文件中复制但需要注意的是不同的 MySQL 版本需要修改驱动类名称默认的配置不支持 MySQL 8。
MySQL 5.7默认com.mysql.jdbc.DriverMySQL 8com.mysql.cj.jdbc.Driver seata:store:# support: file 、 db 、 redismode: dbsession:mode: dblock:mode: dbdb:datasource: druiddb-type: mysqldriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/seata_test1?rewriteBatchedStatementstrueuser: rootpassword: rootmin-conn: 10max-conn: 100global-table: global_tablebranch-table: branch_tablelock-table: lock_tabledistributed-lock-table: distributed_lockquery-limit: 1000max-wait: 50003.3启动脚本
同文件模式一样直接双击启动即可。
4源码部署
源码部署也比较简单拉取代码到本地之后修改配置启动 main 方法即可这里不再展开说明。 Docker 部署 seata-server 基于 Jpom
Docker 部署也很简单按照官方文档的部署步骤一步步操作下来即可。
既然要写的话就写点不一样的之前有写过关于 Jpom 部署 RabbitMQ 的文章本文同样以 Jpom 操作来说明如何部署 seata-server。
1安装 Jpom安装包方式
之前文章里面用的是 Docker 一键安装这里说明一下安装包的方式。
之所以用安装包安装是因为在 Jpom 构建项目的时候如果使用 Docker 安装只支持容器构建不支持本地构建。容器构建需要写 DSL 构建文档本地构建则可以写构建命令比较像 Jenkins 编写部署脚本容易入手。
文章开篇的参考目录里面就已经贴出了 Jpom 安装的官方文档跟着文档操作即可下面简单列举一下操作命令。
1.1jpom-agent 安装
创建文件夹
cd /usr/local/jpom/
mkdir jpom-agent将安装包传到新建的文件夹中。
解压
tar -zxf agent-2.10.43-release.tar.gz -C ./jpom-agent运行
cd /usr/local/jpom/jpom-agent/bin/
bash ./Agent.sh start1.2jpom-server 安装
创建文件夹
cd /usr/local/jpom/
mkdir jpom-server将安装包传到新建的文件夹中。
解压
tar -zxf server-2.10.43-release.tar.gz -C ./jpom-server运行
cd /usr/local/jpom/jpom-server/bin/
bash ./Server.sh start1.3访问测试
访问路径
http://192.168.2.158:2122/初始化的一些操作这里就不再进行说明了可以参考官方文档进行设置。
2Jpom Docker部署 seata-server
首先在系统管理里面对相关的设备信息进行设置。 2.1拉取镜像
菜单功能管理 —— Docker 管理 —— Docker 列表 —— 控制台 进入镜像列表拉取镜像 填写镜像名称 seataio/seata-server:1.7.0点击拉取。
如果不知道镜像名称可以去 dockerhub 上复制一下。 如果是使用服务器终端进行拉取可以直接复制拉取命令
docker pull seataio/seata-server:1.7.0点击拉取之后会出现拉取日志 等待拉取完成即可 如果是使用终端命令拉取 2.2创建容器
拉取完成后刷新镜像列表可以看到 seata-server 镜像。 点击创建容器 修改容器信息 容器创建完成 如果是使用命令创建 docker run --name seata-server -p 8091:8091 -p 7091:7091 seataio/seata-server:1.7.02.3查看容器日志
右侧按钮展开查看日志 2.4访问测试
访问路径
http://192.168.2.158:7091/2.5启动 Demo
首先修改 demo 配置的 ip 地址 启动所有模块查看容器日志 完