当前位置:网站首页>Seata安装Window环境
Seata安装Window环境
2022-06-10 18:00:00 【-小龙人】
一、介绍
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
中文官网 部署指南
二、下载
进入Seata下载页面选择版本下载即可。我这里下载的1.3.0版本,后面的配置基于此版本说明。
三、配置
1. 服务端储存模式配置
Server端存储模式现有file、db、redis三种。
- file模式无需改动,直接启动即可。file模式为单机模式,全局事务会话信息内存中读写并持久化本地文件root.data,性能较高;
- db模式为高可用模式,全局事务会话信息通过db共享,相应性能差些;
- redis模式Seata-Server 1.3及以上版本支持,性能较高,存在事务信息丢失风险,请提前配置合适当前场景的redis持久化配置。
配置文件位置:安装包下 /conf / file.conf,原文件见下截图
原配置文件模式为file文件模式,可选择配置DB,Redis模式,这里我们配置常用模式DB。切换DB模式时,需注意使用的数据库版本,这里默认配置的数据库驱动为8.0版本以下的,如果是8.0以上版本的数据库,需要改动驱动名称。
这里配置好了数据库,那么就需要建立对应的库以及相关表。
2. DB模式创建数据库
Seata官方提供了数据库脚本,只需要下载导入数据库即可,脚本在源码中Script文件夹下,见 Seata-Script,在 部署指南 文档中也有提示:

server文件中db下有数据库脚本,将对应脚本执行即可。
到这里单机版的seata已经搭建好了,可以在bin文件下执行脚本seata-server.bat,即可运行seata的服务。
但在实际使用中,我们通常会建立一个高可用的seata集群,配合注册中心使用,如Nacos,多个seata服务集群,会考虑负载均衡,上面我们将seata客户端的配置如存储配置DB都是放在本地的文件,当使用集群时,一个配置改动需要去每个seata服务端改动文件,效率低且容易出错, 可以将这些配置注册在Nacos中,利用Nacos对各个seata进行负载均衡,并统一管理seata的配置。
3. 注册中心配置
客户端即事务参与者需要和seata事务协调者进行通信,这里建议使用Nacos注册中心,seata服务注册到Nacos中后,可进行相应的负载均衡操作。
配置文件位置与服务端存储配置相同:安装包下 /conf / registry.conf
4. 配置中心配置
seata的服务端配置文件信息如上面设置的DB配置和一些其他的配置,也可以放入Nacos中,默认这些配置是在本地的/conf / file.conf文件中,当我们搭建seata集群时,可以共用Nacos中的seata配置。
配置文件位置与注册中心配置相同:安装包下 /conf / registry.conf
那么就需要将seata中的配置注册到Nacos中,seata针对配置中心的配置提供了类似MySQL的脚本,同样在资源中,在Script文件下config-center / config.txt文件中
打开seata提供的配置文件可以看到里面很多配置项,这些大部分为默认配置都不需要改动(可以删除),只需要针对服务端的存储配置修改为DB模式,存储在MySQL中,这个配置在上文中/conf / file.conf 文件已经改过一次,这里我们只需要相同的改动即可。
配置改完了,但最终是要注册在Nacos中,seata这里也同样做了一个注册的脚本,可以将配置文件注册到Nacos中,在该配置文件目录中,可以看到seata提供了多种注册中心的工具,里面就有相应的脚本。
在Nacos中有shell和python脚本,这里我们使用shell脚本,但我们前面的seate服务器部署在window上无法执行shell文件,这里可以使用本地git环境来操作。在脚本文件夹中打开Git Bash,执行脚本即可,下面截图中指定了Nacos服务地址端口,若不指定默认使用本地Naocs服务默认端口。
自定义参数说明:
-h:host,默认值localhost
-p:port,默认值8848
-g:默认分组,默认值"SEATA_GROUP"
-t:租户信息,对应Nacos的命名空间ID字段,默认值空
到这里我们使用了Nacos将seata部署为高可用的模式,可以去启动seata服务,在bin文件下执行文件seata-server.bat,这里也可以用自定义方式启动,自定义参数如下:
| 参数 | 权限 | 作用 | 备注 |
|---|---|---|---|
| -h | –host | 指定在注册中心的注册IP | 不指定时获取当前IP,外部访问部署在云环境和容器中的server,建议指定 |
| -p | –post | 指定server启动的端口 | 默认为8091 |
| -m | –storeMode | 事务日志存储方式 | 支持file,db,redis,默认file |
| -n | –serverNode | 用于指定seata-server节点ID | 如1,2,3…,默认为1 |
| -e | –seataEnv | 指定seata-server运行环境 | 如dev,prod等,服务启动时会使用registry-dev.conf这样的配置 |
默认方式启用截图:
seata服务启动成功后,会被注册到Nacos中,这时我们需要使用seata来处理分布式事务,只需要调用Nacos中注册的Seata服务即可,需要维护相应的配置信息也只需要在Nacos中修改相应配置。
边栏推荐
猜你喜欢

leecode27,977-双指针法

Wechat applet, get the current page and judge whether the current page is a tabbar page

Huawei cloud Kunpeng devkit code migration practice

Group a large number of files in the same folder into multiple groups according to settings

元数据管理,数字化时代企业的基础建设

数据处理时代,数据分析成为基础建设

连续六年稳居中国SDN(软件)市场份额第一

企业数据质量管理:如何进行数据质量评估?

商业智能BI如何帮企业降低人力、时间和管理成本?

"Digital transformation, data first", talk about how important data governance is to enterprises
随机推荐
数字化转型怎样转?朝哪转?
商业智能BI的服务对象,企业管理者的管理“欲望”该如何实现?
[代码]神经符号生成机器
pwnable start
作为程序员,对于底层原理真的有那么重要吗?
QtMqtt 源码编译设置KeepAlive后ping包超时错误不返回问题修复(QMQTT::MqttNoPingResponse,QMQTT::ClientPrivate::onPingTimeo)
XML & XPath parsing
单调栈结构
三部曲解下棋先手后手问题
AgI foundation, uncertain reasoning, subjective logic ppt2
台积电刘德音:不担心半导体库存修正及美日韩合作,今年业绩将增长30%!
一道题讲解动态规划的前世今生
c语言---12 分支语句switch
AFL fuzzy multithreading
Developers changing the world - Yao Guang teenagers playing Tetris
数据可视化入门学习,要警惕陷阱误区,把握关键节点
C language -- 14 loop statement for
【QNX Hypervisor 2.2 用户手册】3.3 配置Guest
In 2021, the world's top ten analog IC suppliers: Ti ranked first, and skyworks' revenue growth was the highest
Research on next generation distributed file system