最好的案例还是官方文档。移步这里:http://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html
版本问题
之前用过阿里开源的sentinel,即使是跟着官方文档也遇到了不少的坑。sentinel的官网,写的确实潦草了一点。seata还不错,至少在安装入门篇,就把我们引导到了版本相关的页面上来。我们一定要根据他们推荐的版本来配置。否则,会遇上非常多的问题,即使能解决也要花费不少的时间。所以这个弯路大家最好还是省了,乖乖看看官方推荐的版本吧:
链接:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
虽然seata官方版本已经出到 1.4.1了,但是推荐的版本上还会没有最新的。可以直接看下边的关于版本的图片。
单独部署seata服务端
- 下载需要的安装包,可以下载linux版,和windows版。这是下载的链接:https://github.com/seata/seata/releases 然后让我们们找到1.3.0发版本的seata。然后下载。
- 下载下来以后就是下边这样(解压后的)其中启动脚本就在bin目录下。需要修改的配置文件就在conf目录下。
- 下载下来安装包以后,可以在配置文件中修改必备的配置文件。因为seata想当于是第三方事物管理品台,它自然要把事物信息维护在一个地方,目前seata支持的有本地文件的方式,数据库的方式,还有就是redis的方式。修改配置文件的地方如下:第一个就是配置数据源的配置文件。下边的是配置 配置中心的文件。
- 我们就选择数据库的方式。然后去修改配置文件。也就是进到conf目录下->修改file.conf文件。需要配置的项如下:
- 这个时候我们还没有创建表,需要手动的去执行一下脚本,其中创建表的脚本在这里:https://github.com/seata/seata/blob/1.4.0/script/server/db/mysql.sql
- sql 内容如下:
- 再来看看seata是如何支持高可用的:实际上上边已经提到了注册中心的概念。我们可以用一个注册中心,来记录我们的 seata服务端的多个服务实例。此外seata是支持把配置文件放在配置中心,供我们的多份seata服务端实例来读取配置的。在alibaba体系中呢,注册中心和配置中心实际上我们选用nacos是最好不过的。(这里高可用的方案,过程写的比较简单)可以再参考一下官网:http://seata.io/zh-cn/docs/ops/deploy-ha.html
- 其实关于如何把这些配置文件推到nacos,实际上seata也是为我们准备了脚本的。先看一下脚本在哪里:https://github.com/seata/seata/tree/1.4.0/script/config-center/nacos 注意这个脚本是要配合配置文件config.txt 一起放在安装nacos的服务器上来运行的 (config.txt的对祖地址:https://github.com/seata/seata/blob/1.4.0/script/config-center/config.txt),它可以把所有的配置推到nacos。或者修改脚本内容里边的nacos的服务地址也是可以的。
部署客户端
所谓的客户端,准确的来说应嘎是我们用到的各个微服务。比如电商系统里边的订单系统,仓储系统。
- 引入依赖: 注意版本号,要用和你的springCloudAlibaba的版本保持适配
- 需要创建一个undo表,创建表的内容如下:
- 需要在我们的客户端配置 注册中心以及配置中心,这个并不难,只需要在yml文件中,添加对应的配置就可以了。既然是客户端,其实最重要的就是要知道我们的服务端在哪里,也就是事物管理者。上边的步骤已经把我们的服务端注册在了nacos注册中心。如下图下边红框就是。
- 然后在我们之前开启本地事物的地方,换成@GlobalTransactional