前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
本文将介绍一下在Windows平台seata sever端安装及配置,Linux端基本也差不多。本文使用的seata版本是1.6.1,跟1.5之前的版本会有所不同,注意自己安装的版本。
下载地址seata下载
截止发文前最新版本为1.6.1
找到Assets并点击下载,这里安装的是Windows版本,所以下载.zip压缩包
然后到bin目录下双击seata-server.bat
脚本启动seata,出现如图所示的信息表示启动成功。
也可以访问控制台http://localhost:7091/#/login ,查看是否启动成功。用户名密码都是seata
密码是在conf文件加下的application.yml配置文件中配置的
seata存储模式有3种,分别为file 、db 、redis, 默认模式是file,但是这种模式不友好,查看数据不方便,所以最好是用db模式。
首先要导入数据库
新建一个数据库,数据库名字可以自定义,我这里数据库名为seata。将seata需要的数据库表导入进去
在 script\server\db
目录下找到sql文件,我用的是MySQL数据库,所以就导入 mysql.sql
导入之后会有4张表
在application.yml配置文件中,将mode字段值修改为db ,然后配置数据库的信息,比如用户名、密码等,数据库默认是连接池用的是druid
所有的配置信息在 application.example.yml
配置文件中, 这里配置的application.yml 配置文件完整信息如下:
seata:
config:
# support: nacos 、 consul 、 apollo 、 zk 、 etcd3
type: file
registry:
# support: nacos 、 eureka 、 redis 、 zk 、 consul 、 etcd3 、 sofa
type: file
store:
# support: file 、 db 、 redis
mode: db
session:
mode: db
lock:
mode: db
db:
datasource: druid
db-type: mysql
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true
user: root
password: sunlong
min-conn: 10
max-conn: 100
global-table: global_table
branch-table: branch_table
lock-table: lock_table
distributed-lock-table: distributed_lock
query-limit: 1000
max-wait: 5000
seata 是处理分布式事务的,既然是这样肯定要注册中注册中心中去。
这里使用nacos作为注册中心,关于nacos的使用和安装可以查看这篇文章 windows系统 安装nacos服务注册与发现中心
找到application.yml 配置文件,找到config,将type属性值修改为nacos,完整的注册中心配置如下,可以按照自己本机的配置修改:
seata:
config:
# support: nacos 、 consul 、 apollo 、 zk 、 etcd3
type: file
registry:
# support: nacos 、 eureka 、 redis 、 zk 、 consul 、 etcd3 、 sofa
type: nacos
nacos:
application: seata-server
server-addr: 127.0.0.1:8848
group: SEATA_GROUP
namespace:
cluster: default
username:
password:
context-path:
##if use MSE Nacos with auth, mutex with username/password attribute
#access-key:
#secret-key:
打开nacos的控制面板,在服务列表中可以看到seata成功注册到nacos中
像刚开始那些数据库配置seata都是支持动态修改的,也就是说只要将seata注册中配置中心即可,这里仍然使用nacos作为配置中心。
找到config下面的type,将type修改为nacos,配置如下:
seata:
config:
# support: nacos 、 consul 、 apollo 、 zk 、 etcd3
type: nacos
nacos:
server-addr: 127.0.0.1:8848
namespace:
group: SEATA_GROUP
username: nacos
password: nacos
context-path:
##if use MSE Nacos with auth, mutex with username/password attribute
#access-key:
#secret-key:
data-id: seataServer.properties
配置文件修改好后,到seata\script\config-center
文件夹下找到config.txt
文件,config.txt
文件中有seata上传到配置中心的所有参数信息,想知道每个配置都是什么意思,可以 查看官网的 配置文档
可以根据自己的需要上传配置到配置中心,这里只需要如下信息
#Transaction storage configuration, only for the server. The file, db, and redis configuration values are optional.
store.mode=db
store.lock.mode=db
store.session.mode=db
#These configurations are required if the `store mode` is `db`. If `store.mode,store.lock.mode,store.session.mode` are not equal to `db`, you can remove the configuration block.
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=root
store.db.password=sunlong
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.distributedLockTable=distributed_lock
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
配置上传到nacos有两种方式,手动添加和通过脚本导入
从v1.4.2版本开始,已支持从一个Nacos dataId中获取所有配置信息,你只需要额外添加一个dataId配置项。
在nacos中找到配置管理,新加一个配置,配置如下:
最后点击发布即可。
seata官方提供了脚本供我们导入配置。具体文档在seata\script\config-center
文件夹下的 README.md 中,可以查看官网README。
这里就按照文档操作一下导入nacos中,扎到 script\config-center\nacos
文件夹,右键选择 Git Bash Here
,执行如下命令,因为我是本地的,所以地址是 localhost
sh nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP
要怎么验证呢,可以把application.yml 配置文件以下信息注释掉,因为指定的是mode是db,如果没有配置数据库信息启动就会报错,重启seata。
如果在导入配置至Nacos前,已启动Seata-Server 和Client(业务侧)应用需要进行重启。
可以看到重启之后seata启动成功,并且DataSource也初始化成功
至此,seata server的安装就完成了