热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

seata集群部署单机版和集群版

一、单机版a)安装jdk8tar-zxvfjdk-8u261-linux-x64.tar.gz&&\echoexportJAVA_HOMEhomecsiijdk1.8.0_

一、 单机版


a) 安装jdk8

tar -zxvf jdk-8u261-linux-x64.tar.gz && \
echo "export JAVA_HOME=/home/csii/jdk1.8.0_261
export PATH=\$JAVA_HOME/bin:\$PATH
export CLASSPATH=.\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar"
>> ~/.bash_profile && \
source ~/.bash_profile && \
java -version

b) 安装nacos:

从seata官网 https://github.com/seata/seata/releases 下载安装包,最新正式版:seata-server-1.4.0.tar.gz,直接解压

tar -zxf seata-server-1.4.0.tar.gz

c) 修改registry.conf文件:

cd seata/conf

vi registry.conf

registry {# file 、nacos 、eureka、redis、zk、consul、etcd3、sofatype = "nacos" # 这里修改为nacosnacos {serverAddr = "192.168.0.201:8848" # 这里填你的nacos地址namespace = ""
cluster = "default"
username = "nacos"
password = "nacos"}
}config {# file、nacos 、apollo、zk、consul、etcd3type = "file"file {name = "file.conf"}
}

d) 启动

cd ../bin
nohup sh seata-server.sh -p 8091 -h 192.168.100.206 -m file &> seata.log &

-p 指定启动seata server的端口号。
-h 指定seata server所绑定的主机。
-m 事务日志、事务执行信息存储的方式,目前支持file(文件方式)、db(数据库方式,建表语句请查看config/db_store.sql、config/db_undo_log.sql)

tail -1000f seata.log

二、 集群版(三个节点同时操作)


a) 安装jdk8

tar -zxvf jdk-8u261-linux-x64.tar.gz && \
echo "export JAVA_HOME=/home/csii/jdk1.8.0_261
export PATH=\$JAVA_HOME/bin:\$PATH
export CLASSPATH=.\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar"
>> ~/.bash_profile && \
source ~/.bash_profile && \
java -version

b) 安装seata

从seata官网 https://github.com/seata/seata/releases 下载安装包,最新正式版:seata-server-1.4.0.tar.gz,直接解压

tar -zxf nacos-server-2.0.0-ALPHA.1.tar.gz

c) 配置file文件

进入conf目录

cd seata/conf

vim file.conf

## transaction log store, only used in seata-server
store {## store mode: file、db、redismode = "db" #选择db模式## file store propertyfile {## store location dirdir = "sessionStore"# branch session size , if exceeded first try compress lockkey, still exceeded throws exceptionsmaxBranchSessionSize = 16384# globe session size , if exceeded throws exceptionsmaxGlobalSessionSize = 512# file buffer size , if exceeded allocate new bufferfileWriteBufferCacheSize = 16384# when recover batch read sizesessionReloadReadSize = 100# async, syncflushDiskMode = async}## database store propertydb {## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) etc.datasource = "druid"## mysql/oracle/postgresql/h2/oceanbase etc.dbType = "mysql"
driverClassName = "com.mysql.jdbc.Driver"
#填写mysql的jdbcurl = "jdbc:mysql://192.168.100.205:3306/seata"user = "seata"password = "seata"minConn = 5maxConn = 100globalTable = "global_table"branchTable = "branch_table"lockTable = "lock_table"queryLimit = 100maxWait = 5000}service {vgroupMapping.storage-service-group= "default"vgroupMapping.order-service-group= "default"vgroupMapping.business-service-group= "default"}
}

d) 配置MySQL数据库

创建seata数据库

create database seata;

创建mysql用户seata/seatapass

create user 'seata'@'%' identified by 'seatapass';
grant all privileges on seata.* to 'seata'@'%' identified by 'seatapass';

执行建表语句

/*Navicat Premium Data TransferSource Server : OBD服务器Source Server Type : MySQLSource Server Version : 50730Source Host : 192.168.100.205:3306Source Schema : seataTarget Server Type : MySQLTarget Server Version : 50730File Encoding : 65001Date: 09/09/2020 11:54:01
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for branch_table
-- ----------------------------
DROP TABLE IF EXISTS `branch_table`;
CREATE TABLE `branch_table` (`branch_id` bigint(20) NOT NULL,`xid` varchar(128) NOT NULL,`transaction_id` bigint(20) DEFAULT NULL,`resource_group_id` varchar(32) DEFAULT NULL,`resource_id` varchar(256) DEFAULT NULL,`branch_type` varchar(8) DEFAULT NULL,`status` tinyint(4) DEFAULT NULL,`client_id` varchar(64) DEFAULT NULL,`application_data` varchar(2000) DEFAULT NULL,`gmt_create` datetime(6) DEFAULT NULL,`gmt_modified` datetime(6) DEFAULT NULL,PRIMARY KEY (`branch_id`),KEY `idx_xid` (`xid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for global_table
-- ----------------------------
DROP TABLE IF EXISTS `global_table`;
CREATE TABLE `global_table` (`xid` varchar(128) NOT NULL,`transaction_id` bigint(20) DEFAULT NULL,`status` tinyint(4) NOT NULL,`application_id` varchar(32) DEFAULT NULL,`transaction_service_group` varchar(32) DEFAULT NULL,`transaction_name` varchar(128) DEFAULT NULL,`timeout` int(11) DEFAULT NULL,`begin_time` bigint(20) DEFAULT NULL,`application_data` varchar(2000) DEFAULT NULL,`gmt_create` datetime DEFAULT NULL,`gmt_modified` datetime DEFAULT NULL,PRIMARY KEY (`xid`),KEY `idx_gmt_modified_status` (`gmt_modified`,`status`),KEY `idx_transaction_id` (`transaction_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for lock_table
-- ----------------------------
DROP TABLE IF EXISTS `lock_table`;
CREATE TABLE `lock_table` (`row_key` varchar(128) NOT NULL,`xid` varchar(96) DEFAULT NULL,`transaction_id` bigint(20) DEFAULT NULL,`branch_id` bigint(20) NOT NULL,`resource_id` varchar(256) DEFAULT NULL,`table_name` varchar(32) DEFAULT NULL,`pk` varchar(36) DEFAULT NULL,`gmt_create` datetime DEFAULT NULL,`gmt_modified` datetime DEFAULT NULL,PRIMARY KEY (`row_key`),KEY `idx_branch_id` (`branch_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;SET FOREIGN_KEY_CHECKS = 1;每个需要全局事务的数据库中,放一个undo_log的表/*Navicat Premium Data TransferSource Server : OBD服务器Source Server Type : MySQLSource Server Version : 50730Source Host : 192.168.100.205:3306Source Schema : seata-demoTarget Server Type : MySQLTarget Server Version : 50730File Encoding : 65001Date: 07/08/2020 10:15:13
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for undo_log
-- ----------------------------
DROP TABLE IF EXISTS `undo_log`;
CREATE TABLE `undo_log` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`branch_id` bigint(20) NOT NULL,`xid` varchar(100) NOT NULL,`context` varchar(128) NOT NULL,`rollback_info` longblob NOT NULL,`log_status` int(11) NOT NULL,`log_created` datetime NOT NULL,`log_modified` datetime NOT NULL,`ext` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB AUTO_INCREMENT=432 DEFAULT CHARSET=utf8;SET FOREIGN_KEY_CHECKS = 1;

e) 配置registry文件

vim application.properties

registry {# file 、nacos 、eureka、redis、zk、consul、etcd3、sofatype = "nacos"loadBalance = "RandomLoadBalance"loadBalanceVirtualNodes = 10nacos {application = "seata-server1" #每个节点命名不同1,2,3serverAddr = "192.168.100.201:8848,192.168.100.202:8848,192.168.100.203:8848" #nacos地址group = "SEATA_GROUP"namespace = ""cluster = "default"username = "nacos"password = "nacos" #nacos登陆账密}
}config {# file、nacos 、apollo、zk、consul、etcd3type = "file"file {name = "file.conf"}}

f) 启动seata

cd bin/
sh seata-server.sh -p 8091 -h 192.168.100.206 -m db -n 1 &> seata.log &

-h 为注册到注册中心的地址,通常为seata自身IP
#另外两节点启动

sh seata-server.sh -p 8091 -h 192.168.100.207 -m db -n 2 &> seata.log &
sh seata-server.sh -p 8091 -h 192.168.100.208 -m db -n 3 &> seata.log &

g) 启动成功 登陆nacos控制台查看

http://192.168.100.203:8848/nacos

h) 开机自启

1节点
vi startseata.sh

sh /home/ywzt/seata-server.sh -p 8091 -h 192.168.100.206 -m file &> seata.log &

2节点
vi startseata.sh

sh /home/ywzt/seata-server.sh -p 8091 -h 192.168.100.206 -m file &> seata.log &

3节点
vi startseata.sh

sh /home/ywzt/seata-server.sh -p 8091 -h 192.168.100.206 -m file &> seata.log &

三个节点操作
(使用root用户操作)
vi /etc/rc.d/rc.local
在最后一行加上

su - ywzt -c "/home/ywzt/seata/startseata.sh"
chmod +x /etc/rc.d/rc.local

推荐阅读
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
  • 本文介绍了如何使用vue-awesome-swiper组件,包括在main.js中引入和使用swiper和swiperSlide组件,以及设置options和ref属性。同时还介绍了如何在模板中使用swiper和swiperSlide组件,并展示了如何通过循环渲染swipes数组中的数据,并使用picUrl属性显示图片。最后还介绍了如何添加分页器。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • Redis的默认端口、数据库使用和多端口配置
    本文介绍了Redis的默认端口、数据库使用和多端口配置的方法。通过选择不同的数据库和使用flushdb命令可以实现对不同数据库的访问和清除数据。同时,本文还介绍了在同一台机器上启用多个Redis实例的方法,并讨论了配置认证密码的步骤和注意事项。 ... [详细]
  • 基于分布式锁的防止重复请求解决方案
    一、前言关于重复请求,指的是我们服务端接收到很短的时间内的多个相同内容的重复请求。而这样的重复请求如果是幂等的(每次请求的结果都相同,如查 ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
  • 有意向可以发简历到邮箱内推.简历直达组内Leader.能做同事的话,内推奖励全给你. ... [详细]
author-avatar
fspygh
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有