Seata 与 Nacos注册中心整合实现集群环境搭建_02
接上一篇: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相关推荐
- consul注册中心高可用集群的搭建经验
consul简介 Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性: 1.服务发现: Consul的客户端可用提供一个服务,比如 api 或者 ...
- 学习笔记之-Kubernetes(K8S)介绍,集群环境搭建,Pod详解,Pod控制器详解,Service详解,数据存储,安全认证,DashBoard
笔记来源于观看黑马程序员Kubernetes(K8S)教程 第一章 kubernetes介绍 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署 ...
- hadoop集群环境搭建准备工作
一定要注意hadoop和linux系统的位数一定要相同,就是说如果hadoop是32位的,linux系统也一定要安装32位的. 准备工作: 1 首先在VMware中建立6台虚拟机(配置默认即可).这是 ...
- 高吞吐消息中间件Kafka集群环境搭建(3台kafka,3台zookeeper)
高吞吐消息中间件Kafka集群环境搭建(3台kafka,3台zookeeper) 一.集群搭建要求 1.搭建设计 2.分配六台Linux,用于安装拥有三个节点的Kafka集群和三个节点的Zookeep ...
- kubernetes集群环境搭建(kubeadm方式)
1. kubernetes简介 kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2 ...
- apache+tomcat集群环境搭建
apache+tomcat集群环境搭建 1. 什么是集群 简单理解就是:将项目同时部署在多台服务器上(tomcat)运行,通过一个web服务器(Apache/nginx)进行请求分发和 ...
- 2W 字详解 Redis 6.0 集群环境搭建实践
原文链接:https://www.cnblogs.com/hueyxu/p/13884800.html 本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环 ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十一)NIFI1.7.1安装
一.nifi基本配置 1. 修改各节点主机名,修改/etc/hosts文件内容. 192.168.0.120master192.168.0.121slave1192.168.0.122 slave2 ...
- 『高级篇』docker之DockerSwarm的集群环境搭建(28)
原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『高级篇』docker之DockerSwarm的集群环境搭建(28) 上次了解了docker Swarm,这次一起动手操作,搭 ...
最新文章
- [流媒体]实例解析MMS流媒体协议,下载LiveMediaVideo[4]
- java pdf添加透明水印_如何在PDF文件中添加透明水印
- tcp/udp socket编程异同
- 机器学习实战:GBDT Xgboost LightGBM对比
- java html5 上传_HTML5结合ajax实现文件上传以及进度显示
- 作者:刘勇,山东农业大学教授、博士生导师。
- Qt_数据库基本操作(未完成)
- JNI调用两层C++动态库
- 图像处理与计算机视觉经典文章
- [SDOI2009] HH去散步 (矩阵乘法)
- 分布式SQL引擎-----------Inceptor(学习使用)
- 二维图像矢量化方法简述
- 请教各位大虾:Delphi创建的ActiveForm上的SpeedButton在鼠标离开后没有重画为flat样式
- Android 直播 直播播放器选型
- 个人角度谈IE10浏览器
- 一个免费全格式MP3音乐播放器的工具
- 【转】地心历险记 2:神秘岛 迅雷 下载 地址|神秘岛 高清 下载地址
- RocketMQ:The producer group has been created before, specify another name please.
- GPFS各类排故日志收集汇总
- ipad怎么和mac分屏_iPad如何进行分屏多任务操作【详细介绍】