做网站公司有哪些,html网站头部如何制作,如何做网站泛目录解析,30岁学编程还能找到工作吗Linux中安装seata 一、准备1、环境2、下载3、上传到服务器4、解压 二、配置1、备份配置文件2、导入sql3、修改配置前4、修改配置后5、在nacos中配置 三、使用1、启动2、关闭 一、准备
1、环境
因为要在 nacos 中配置#xff0c;要求安装并启动 nacos 。可以参考这篇博客。
… Linux中安装seata 一、准备1、环境2、下载3、上传到服务器4、解压 二、配置1、备份配置文件2、导入sql3、修改配置前4、修改配置后5、在nacos中配置 三、使用1、启动2、关闭 一、准备
1、环境
因为要在 nacos 中配置要求安装并启动 nacos 。可以参考这篇博客。
我的 nacos 版本是 2.2.1 演示安装的 seata 版本是 1.6.1 。
2、下载
seata的下载地址如下 https://seata.apache.org/zh-cn/unversioned/download/seata-server 开发环境的 seata 的版本为 1.6.1 为了保证版本一致这里也下载 1.6.1 版本。
3、上传到服务器
这里上传到 /usr/local/seata 目录 4、解压
解压 seata 使用如下命令
tar -zxvf seata-server-1.6.1.tar.gz解压后的目录为 seata 这里将它修改为 seata-1.6.1 命令如下
mv seata seata-1.6.1二、配置
配置文件在根目录的 conf 文件夹下这里是 /usr/local/seata/seata-1.6.1/conf 目录
1、备份配置文件
先备份一下配置文件防止误修改命令如下
cp application.yml application_bk.yml2、导入sql
这里选用 mysql 存储模式所以导入 mysql 的sql数据库脚本的地址如下 https://github.com/apache/incubator-seata/tree/master/script/server/db 先创建一个数据库名称可以自定义这里为 seata 命令如下
CREATE DATABASE seata然后再执行sql这是对应的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);如果是AT模式AT模式也是seata建议的模式需要加上这张事务回滚表具体sql如下
DROP TABLE IF EXISTS undo_log;
CREATE TABLE undo_log (branch_id bigint(0) NOT NULL COMMENT branch transaction id,xid varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT global transaction id,context varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT undo_log context,such as serialization,rollback_info longblob NOT NULL COMMENT rollback info,log_status int(0) NOT NULL COMMENT 0:normal status,1:defense status,log_created datetime(6) NOT NULL COMMENT create datetime,log_modified datetime(6) NOT NULL COMMENT modify datetime,UNIQUE INDEX ux_undo_log(xid, branch_id) USING BTREE
) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT AT transaction mode undo table ROW_FORMAT Dynamic;3、修改配置前
主要修改这部分 这是原来的完整配置
# 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: 7091spring:application:name: seata-serverlogging:config: classpath:logback-spring.xmlfile:path: ${user.home}/logs/seataextend:logstash-appender:destination: 127.0.0.1:4560kafka-appender:bootstrap-servers: 127.0.0.1:9092topic: logback_to_logstashconsole:user:username: seatapassword: seataseata:config:# support: nacos, consul, apollo, zk, etcd3type: fileregistry:# support: nacos, eureka, redis, zk, consul, etcd3, sofatype: filestore:# support: file 、 db 、 redismode: file
# server:
# service-port: 8091 #If not configured, the default is ${server.port} 1000security:secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017tokenValidityInMilliseconds: 1800000ignore:urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login4、修改配置后
已经在修改的地方做好了注释初次配置不建议跳过
# 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: 7091spring:application:name: seata-serverlogging:config: classpath:logback-spring.xmlfile:path: ${user.home}/logs/seataextend:logstash-appender:destination: 127.0.0.1:4560kafka-appender:bootstrap-servers: 127.0.0.1:9092topic: logback_to_logstashconsole:user:username: seatapassword: seataseata:config:# support: nacos, consul, apollo, zk, etcd3type: nacosnacos:server-addr: 127.0.0.1:8848 # nacos的访问地址因为是在docker中ip地址改为宿主机地址namespace:group: SEATA_GROUP # nacos的分组username: nacos # nacos的用户名password: nacos # nacos的密码context-path:##if use MSE Nacos with auth, mutex with username/password attribute#access-key:#secret-key:data-id: seata.properties # nacos中的配置文件名称registry:# support: nacos, eureka, redis, zk, consul, etcd3, sofatype: nacosnacos:application: seata-server # seata启动后在nacos的服务名server-addr: 127.0.0.1:8848 # nacos的访问地址如果是在docker中ip地址改为宿主机地址group: SEATA_GROUP # nacos的分组namespace:cluster: default # 这个参数在每个微服务seata时会用到username: nacos # nacos的用户名password: nacos # nacos的密码context-path:##if use MSE Nacos with auth, mutex with username/password attribute#access-key:#secret-key:store:# support: file 、 db 、 redismode: dbdb:datasource: druiddb-type: mysqldriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/seata?characterEncodingutf8connectTimeout10000socketTimeout30000autoReconnecttrueuseUnicodetrueuseSSLfalseuser: rootpassword: 123456min-conn: 10 # db 模式数据库初始连接数max-conn: 100 # db 模式数据库最大连接数global-table: global_table # db 模式全局事务表名branch-table: branch_table # db 模式分支事务表名lock-table: lock_table # db 模式全局锁表名distributed-lock-table: distributed_lock # db 模式 Sever 端事务管理全局锁存储表名query-limit: 1000 # db 模式查询全局事务一次的最大条数默认100max-wait: 5000 # db 模式获取连接时最大等待时间默认5000
# server:
# service-port: 8091 #If not configured, the default is ${server.port} 1000security:secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017tokenValidityInMilliseconds: 1800000ignore:urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login5、在nacos中配置
需要在 nacos 中创建 SEATA_GROUP 分组增加名为 seata.properties 的配置 具体配置如下
store.modedb
store.db.datasourcedruid
store.db.dbTypemysql
store.db.driverClassNamecom.mysql.cj.jdbc.Driver
store.db.urljdbc:mysql://127.0.0.1:3306/seata?useUnicodetrue
store.db.userroot
store.db.password123456
store.db.minConn5
store.db.maxConn30
store.db.globalTableglobal_table
store.db.branchTablebranch_table
store.db.queryLimit100
store.db.lockTablelock_table
store.db.maxWait5000三、使用
1、启动
启动 seata 需要到根目录下的 bin 目录这里是 /usr/local/seata/seata-1.6.1/bin 使用如下命令
sh seata-server.sh然后到 nacos 中查看 在浏览器中访问 可以看到 seata 已经启动。
2、关闭
因为 seata 没有提供关闭的命令至少我这版本没有先查询 seata 的进程id命令如下
ps -ef | grep seata然后再杀掉这个进程命令如下
kill -9 370711回到 nacos 发现 seata 服务也消失了 成功关闭。