iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java seata部署和集成的方法是什么
  • 451
分享到

java seata部署和集成的方法是什么

2023-07-06 04:07:59 451人浏览 泡泡鱼
摘要

这篇文章主要讲解了“java seata部署和集成的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java seata部署和集成的方法是什么”吧!seata的部署和集成1.部署Se

这篇文章主要讲解了“java seata部署和集成的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java seata部署和集成的方法是什么”吧!

seata的部署和集成

1.部署Seata的tc-server

1)下载

首先我们要下载seata-server包

java seata部署和集成的方法是什么

2)解压

在非中文目录解压缩这个zip包,其目录结构如下:

java seata部署和集成的方法是什么

3)修改配置

修改conf目录下的reGIStry.conf文件:

java seata部署和集成的方法是什么

内容如下:

registry {  # tc服务的注册中心类,这里选择Nacos,也可以是eureka、ZooKeeper等  type = "nacos"  nacos {    # seata tc 服务注册到 nacos的服务名称,可以自定义    application = "seata-tc-server"    serverAddr = "127.0.0.1:8848"    group = "DEFAULT_GROUP"    namespace = ""    cluster = "SH"    username = "nacos"    passWord = "nacos"  }}config {  # 读取tc服务端的配置文件的方式,这里是从nacos配置中心读取,这样如果tc是集群,可以共享配置  type = "nacos"  # 配置nacos地址等信息  nacos {    serverAddr = "127.0.0.1:8848"    namespace = ""    group = "SEATA_GROUP"    username = "nacos"    password = "nacos"    dataid = "seataServer.properties"  }}
4)在nacos添加配置

特别注意,为了让tc服务的集群可以共享配置,我们选择了nacos作为统一配置中心。因此服务端配置文件seataServer.properties文件需要在nacos中配好。

格式如下:

java seata部署和集成的方法是什么

配置内容如下:

# 数据存储方式,db代表数据库store.mode=dbstore.db.datasource=druidstore.db.dbType=mysqlstore.db.driverClassName=com.Mysql.jdbc.Driverstore.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=truestore.db.user=rootstore.db.password=123store.db.minConn=5store.db.maxConn=30store.db.globalTable=global_tablestore.db.branchTable=branch_tablestore.db.queryLimit=100store.db.lockTable=lock_tablestore.db.maxWait=5000# 事务日志等配置server.recovery.committingRetryPeriod=1000server.recovery.asynCommittingRetryPeriod=1000server.recovery.rollbackingRetryPeriod=1000server.recovery.timeoutRetryPeriod=1000server.maxCommitRetryTimeout=-1server.maxRollbackRetryTimeout=-1server.rollbackRetryTimeoutUnlockEnable=falseserver.undo.logSaveDays=7server.undo.logDeletePeriod=86400000# 客户端与服务端传输方式transport.serialization=seatatransport.compressor=none# 关闭metrics功能,提高性能metrics.enabled=falsemetrics.registryType=compactmetrics.exporterList=prometheusmetrics.exporterPrometheusPort=9898

其中的数据库地址、用户名、密码都需要修改成你自己的数据库信息。

5)创建数据库表

特别注意:tc服务在管理分布式事务时,需要记录事务相关数据到数据库中,你需要提前创建好这些表。

新建一个名为seata的数据库,运行课前资料提供的sql文件:

java seata部署和集成的方法是什么

这些表主要记录全局事务、分支事务、全局信息:

SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ 分支事务表-- ----------------------------DROP TABLE IF EXISTS `branch_table`;CREATE TABLE `branch_table`  (  `branch_id` bigint(20) NOT NULL,  `xid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,  `transaction_id` bigint(20) NULL DEFAULT NULL,  `resource_group_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `resource_id` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `branch_type` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `status` tinyint(4) NULL DEFAULT NULL,  `client_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `application_data` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `gmt_create` datetime(6) NULL DEFAULT NULL,  `gmt_modified` datetime(6) NULL DEFAULT NULL,  PRIMARY KEY (`branch_id`) USING BTREE,  INDEX `idx_xid`(`xid`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;-- ------------------------------ 全局事务表-- ----------------------------DROP TABLE IF EXISTS `global_table`;CREATE TABLE `global_table`  (  `xid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,  `transaction_id` bigint(20) NULL DEFAULT NULL,  `status` tinyint(4) NOT NULL,  `application_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `transaction_service_group` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `transaction_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `timeout` int(11) NULL DEFAULT NULL,  `begin_time` bigint(20) NULL DEFAULT NULL,  `application_data` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `gmt_create` datetime NULL DEFAULT NULL,  `gmt_modified` datetime NULL DEFAULT NULL,  PRIMARY KEY (`xid`) USING BTREE,  INDEX `idx_gmt_modified_status`(`gmt_modified`, `status`) USING BTREE,  INDEX `idx_transaction_id`(`transaction_id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;SET FOREIGN_KEY_CHECKS = 1;
6)启动TC服务

进入bin目录,运行其中的seata-server.bat即可:

java seata部署和集成的方法是什么

启动成功后,seata-server应该已经注册到nacos注册中心了。

打开浏览器,访问nacos地址:Http://localhost:8848,然后进入服务列表页面,可以看到seata-tc-server的信息:

java seata部署和集成的方法是什么

2.微服务集成seata 1)引入依赖

1)引入依赖

首先,我们需要在微服务中引入seata依赖:

<dependency>    <groupId>com.alibaba.cloud</groupId>    <artifactId>spring-cloud-starter-alibaba-seata</artifactId>    <exclusions>        <!--版本较低,1.3.0,因此排除-->        <exclusion>            <artifactId>seata-spring-boot-starter</artifactId>            <groupId>io.seata</groupId>        </exclusion>    </exclusions></dependency><!--seata starter 采用1.4.2版本--><dependency>    <groupId>io.seata</groupId>    <artifactId>seata-spring-boot-starter</artifactId>    <version>${seata.version}</version></dependency>
2)修改配置文件

需要修改application.yml文件,添加一些配置:

seata:  registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址    # 参考tc服务自己的registry.conf中的配置    type: nacos    nacos: # tc      server-addr: 127.0.0.1:8848      namespace: ""      group: DEFAULT_GROUP      application: seata-tc-server # tc服务在nacos中的服务名称      cluster: SH  tx-service-group: seata-demo # 事务组,根据这个获取tc服务的cluster名称  service:    vgroup-mapping: # 事务组与TC服务cluster的映射关系      seata-demo: SH

3.TC服务的高可用和异地容灾 1)模拟异地容灾的TC集群

1)模拟异地容灾的TC集群

计划启动两台seata的tc服务节点:

节点名称ip地址端口号集群名称
seata127.0.0.18091SH
seata2127.0.0.18092HZ

之前我们已经启动了一台seata服务,端口是8091,集群名为SH。

现在,将seata目录复制一份,起名为seata2

修改seata2/conf/registry.conf内容如下:

registry {  # tc服务的注册中心类,这里选择nacos,也可以是eureka、zookeeper等  type = "nacos"  nacos {    # seata tc 服务注册到 nacos的服务名称,可以自定义    application = "seata-tc-server"    serverAddr = "127.0.0.1:8848"    group = "DEFAULT_GROUP"    namespace = ""    cluster = "HZ"    username = "nacos"    password = "nacos"  }}config {  # 读取tc服务端的配置文件的方式,这里是从nacos配置中心读取,这样如果tc是集群,可以共享配置  type = "nacos"  # 配置nacos地址等信息  nacos {    serverAddr = "127.0.0.1:8848"    namespace = ""    group = "SEATA_GROUP"    username = "nacos"    password = "nacos"    dataId = "seataServer.properties"  }}

进入seata2/bin目录,然后运行命令:

seata-server.bat -p 8092

打开nacos控制台,查看服务列表:

java seata部署和集成的方法是什么

点进详情查看:

java seata部署和集成的方法是什么

2)将事务组映射配置到nacos

接下来,我们需要将tx-service-group与cluster的映射关系都配置到nacos配置中心。

新建一个配置:

java seata部署和集成的方法是什么

配置的内容如下:

# 事务组映射关系service.vgroupMapping.seata-demo=SHservice.enableDegrade=falseservice.disableGlobalTransaction=false# 与TC服务的通信配置transport.type=tcptransport.server=NIOtransport.heartbeat=truetransport.enableClientBatchSendRequest=falsetransport.threadFactory.bossThreadPrefix=NettyBosstransport.threadFactory.workerThreadPrefix=NettyServerNIOWorkertransport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandlertransport.threadFactory.shareBossWorker=falsetransport.threadFactory.clientSelectorThreadPrefix=NettyClientSelectortransport.threadFactory.clientSelectorThreadSize=1transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThreadtransport.threadFactory.bossThreadSize=1transport.threadFactory.workerThreadSize=defaulttransport.shutdown.wait=3# RM配置client.rm.asyncCommitBufferLimit=10000client.rm.lock.retryInterval=10client.rm.lock.retryTimes=30client.rm.lock.retryPolicyBranchRollbackOnConflict=trueclient.rm.reportRetryCount=5client.rm.tableMetaCheckEnable=falseclient.rm.tableMetaCheckerInterval=60000client.rm.sqlParserType=druidclient.rm.reportSuccessEnable=falseclient.rm.sagaBranchRegisterEnable=false# TM配置client.tm.commitRetryCount=5client.tm.rollbackRetryCount=5client.tm.defaultGlobalTransactionTimeout=60000client.tm.degradeCheck=falseclient.tm.degradeCheckAllowTimes=10client.tm.degradeCheckPeriod=2000# undo日志配置client.undo.dataValidation=trueclient.undo.logSerialization=jacksonclient.undo.onlyCareUpdateColumns=trueclient.undo.logTable=undo_loGClient.undo.compress.enable=trueclient.undo.compress.type=zipclient.undo.compress.threshold=64kclient.log.exceptionRate=100
3)微服务读取nacos配置

接下来,需要修改每一个微服务的application.yml文件,让微服务读取nacos中的client.properties文件:

seata:  config:    type: nacos    nacos:      server-addr: 127.0.0.1:8848      username: nacos      password: nacos      group: SEATA_GROUP      data-id: client.properties

重启微服务,现在微服务到底是连接tc的SH集群,还是tc的HZ集群,都统一由nacos的client.properties来决定了。

lient.log.exceptionRate=100

## 3.微服务读取nacos配置接下来,需要修改每一个微服务的application.yml文件,让微服务读取nacos中的client.properties文件:```yamlseata:  config:    type: nacos    nacos:      server-addr: 127.0.0.1:8848      username: nacos      password: nacos      group: SEATA_GROUP      data-id: client.properties

重启微服务,现在微服务到底是连接tc的SH集群,还是tc的HZ集群,都统一由nacos的client.properties来决定了。

感谢各位的阅读,以上就是“java seata部署和集成的方法是什么”的内容了,经过本文的学习后,相信大家对java seata部署和集成的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: java seata部署和集成的方法是什么

本文链接: https://www.lsjlt.com/news/357602.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java seata部署和集成的方法是什么
    这篇文章主要讲解了“java seata部署和集成的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java seata部署和集成的方法是什么”吧!seata的部署和集成1.部署Se...
    99+
    2023-07-06
  • seata的部署和集成详细介绍
    目录seata的部署和集成1.部署Seata的tc-server1)下载2)解压3)修改配置4)在nacos添加配置5)创建数据库表6)启动TC服务2.微服务集成seata 1)引入...
    99+
    2023-05-15
    Java seata部署和集成 seata部署 seata集成
  • tomcat集群部署的方法是什么
    Tomcat集群部署可以通过多种方法实现,以下是常见的几种方法:1.硬件负载均衡器:使用硬件负载均衡器(如F5 Big-IP、Ngi...
    99+
    2023-09-26
    tomcat
  • weblogic集群部署的方法是什么
    WebLogic集群部署有以下几种方法:1. 手动部署:手动在每个集群节点上安装WebLogic Server,并手动配置集群和节点...
    99+
    2023-10-12
    weblogic
  • k8s集群部署的方法是什么
    Kubernetes(简称为k8s)集群的部署方法有多种,可以根据实际需求选择适合的部署方法。以下是一些常见的部署方法:1. 手动部...
    99+
    2023-10-24
    k8s
  • springboot集群部署的方法是什么
    Spring Boot可以使用多种方式进行集群部署,以下是一些常用的方法:1. 使用容器化技术部署:将Spring Boot应用打包...
    99+
    2023-09-05
    springboot
  • mongodb分片集群部署的方法是什么
    MongoDB分片集群部署的方法包括以下步骤: 部署分片服务器:首先需要创建多个分片服务器,每个分片服务器可以包含一个或多个副本...
    99+
    2024-04-09
    mongodb
  • mysql中pxc集群部署的方法是什么
    Percona XtraDB Cluster (PXC) 是一个基于Galera Replication的MySQL集群解决方案,它...
    99+
    2024-04-09
    mysql
  • redis集群离线部署的方法是什么
    Redis集群的离线部署方法如下:1. 下载Redis源码:从Redis官方网站或GitHub上下载最新版的Redis源码。2. 解...
    99+
    2023-08-30
    redis
  • seata docker高可用部署是什么意思
    本篇内容主要讲解“seata docker高可用部署是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“seata docker高可用部署是什么意思”吧!版本2官方文档dockerhub启动...
    99+
    2023-06-20
  • Java O2OA 服务器集群部署配置的方法是什么
    这篇文章主要介绍“Java O2OA 服务器集群部署配置的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java O2OA 服务器集群部署配置的方法是什么”文章能帮助大家解决问题。主机信息...
    99+
    2023-06-04
  • k8s部署redis集群实现的方法是什么
    这篇文章主要介绍“k8s部署redis集群实现的方法是什么”,在日常操作中,相信很多人在k8s部署redis集群实现的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”k8s部署redis集群实现的方法...
    99+
    2023-07-05
  • 最简单的k8s集群部署方法是什么
    最简单的Kubernetes集群部署方法是使用工具如kubeadm、minikube或者k3s。这些工具能够自动化地在单个节点或者多...
    99+
    2023-09-27
    k8s
  • java分布式部署的方法是什么
    Java分布式部署有多种方法,以下是常用的几种:1. 垂直扩展:通过增加服务器的硬件资源(例如CPU、内存)来增加系统的处理能力。这...
    99+
    2023-09-05
    java
  • redis安装和部署的方法是什么
    Redis的安装和部署方法如下:1. 安装依赖:Redis依赖于tcl库,需要先安装tcl库。在Debian或Ubuntu系统上,可...
    99+
    2023-08-24
    redis
  • tensorflow部署和使用的方法是什么
    TensorFlow是一个开源的机器学习框架,可以用于构建、训练和部署深度学习模型。以下是TensorFlow部署和使用的一般步骤:...
    99+
    2024-03-12
    tensorflow
  • Mahout的部署和监控方法是什么
    Mahout的部署和监控方法可以按照以下步骤进行: 部署Mahout:首先,需要将Mahout安装在相应的服务器或集群上。可以通...
    99+
    2024-04-02
  • openstack安装和部署的方法是什么
    OpenStack的安装和部署可以分为几个步骤。以下是一种常见的方法: 准备环境: 确保服务器满足最低要求,包括硬件、操作系统...
    99+
    2023-10-25
    openstack
  • Rancher部署并导入K8S集群的方法是什么
    这篇文章主要介绍“Rancher部署并导入K8S集群的方法是什么”,在日常操作中,相信很多人在Rancher部署并导入K8S集群的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Rancher部署并导...
    99+
    2023-06-22
  • IDEA 集成 docker 实现远程部署的方法
    这篇文章主要介绍“IDEA 集成 docker 实现远程部署的方法”,在日常操作中,相信很多人在IDEA 集成 docker 实现远程部署的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”IDEA 集成 d...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作