环境: linux centos7 mysql8.x
因为我是用docker 启动了一个8.0.19 的mysql ,但是seata 中使用的5.x 的mysql ,需要将下载的seata-server lib 中的 mysql的jar 替换掉就行,换成8.0.19 的即可.
修改文件名称lib为libs,为什么要改名字呢?因为docker版的seata 上就叫libs 我们一会要覆盖它,将文件夹拷贝到linux 服务器上, 我在linux上创建了一个文件夹 /docker/seata
这个路径随意,方便找就行了
将这两个配置文件也拷贝出来上传到linux 服务器中,文件夹 /docker/seata
完事之后,如图:
我用的是nacos 注册中心, 然后,我的file.conf 如下:
service {
#transaction service group mapping
vgroup_mapping.my_test_tx_group = "default"
#only support when registry.type=file, please don't set multiple addresses
default.grouplist = "192.168.134.128:8091"
#disable seata
disableGlobalTransaction = false
}
## transaction log store, only used in seata-server
store {
## store mode: file、db
mode = "db"
## file store property
file {
## store location dir
dir = "sessionStore"
}
## database store property
db {
## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp) etc.
datasource = "dbcp"
## mysql/oracle/h2/oceanbase etc.
db-type = "mysql"
driver-class-name = "com.mysql.cj.jdbc.Driver"
url = "jdbc:mysql://192.168.134.128:3306/seata?serverTimezone=GMT%2B8"
user = "root"
password = "root"
}
}
registry.conf 如下:
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
nacos {
serverAddr = "192.168.134.128:8848"
namespace = ""
cluster = "default"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "nacos"
nacos {
serverAddr = "192.168.134.128:8848"
namespace = ""
}
}
到这里,准备工作就算完事了, 接下来就是先启动一个docker版本的seata
docker run -d --name=seata seataio/seata-server:1.0.0
然后执行一下代码,可以看见seata的结构
docker exec -it seata sh
成功启动之后,将我们上几步上传到/docker/seata 文件夹下的文件, 覆盖掉docker 里面的文件
docker cp /docker/seata/libs seata:/seata-server
docker cp /docker/seata/file.conf seata:/seata-server/resources
docker cp /docker/seata/registry.conf seata:/seata-server/resources
现在我们可以将容器提交到本地,还可以提交到我们的私有镜像库, 现在先提交到本地仓库
docker commit 53394e14e9a9 myseata-server
接下来,停止我们刚刚的容器,然后 启动我们刚刚创建这个镜像就可以了
docker run -d -p 8091:8091 --name=myseata --network host myseata-server
或者指定ip
docker run -d -p 8091:8091 -e SEATA_IP=192.168.134.128 --name=myseata myseata-server
然后我们的项目中 如何使用呢? 注意我的阿里巴巴的版本是2.2.0.RELEASE
1.添加这个配置即可
seata:
registry:
nacos:
server-addr: 192.168.134.128:8848
type: nacos
2.将file.conf 拷贝到项目中的resources 文件夹下,内容只保留这些即可
启动,打完收工