自学了尚硅谷周阳老师的springcloud,在学习springcloud alibaba的seata时,由于官网和讲解的版本不一致,所以发生了一系列的错误,在此纪录一下,以便查阅。由于本人完全菜鸟,所以有些问题或者配置主要是以代码跑通为主,请各位轻喷。我所用的版本是seata1.4.1,相较0.9版本有较大变化,所以配置起来也有较大差别。seata1.4.1下载解压缩后,如下logs文件是没有的,所以点击bin目录下的seata-server.bat会出现闪退,因此,需要在和conf同样的路径下创建一个logs文件夹,然后启动即可。
按照阳哥在视频中的讲解,需要配置register.conf和file.conf文件,但新版本的file.conf文件中并没有service目录,因此参考github上的demo,网址如下,https://github.com/seata/seata-samples/blob/master/springcloud-jpa-seata/order-service/src/main/resources/file.conf,将其全部内容拷贝到file.conf文件中(注意不要覆盖原来内容)。在file.conf中需要修改并注意的内容:
在register.conf中修改内容如下:
配置完成之后可点击bin目录下的seata-server.bat启动TC,在nacos中看到如下界面代表配置并启动成功:
然后是在springboot项目中的整合,application.yml中关键配置如下,其中最关键的地方在于seata在我的配置文件中替换file.conf的配置不起作用,只能像如下这样配置。如将seata配置处spring外,同样也会出error,出现找不到集群类似的异常。
至此关键配置完成,一些大牛在博客中将file.conf与register.conf中的配置全部写进yml文件中,并且运行成功,但是在我这失败了,还是本人学艺不精,只能将file.conf与register.conf拷贝进和yml文件同一路径下,才能启动并注册成功。另外,若在启动过程中报GlobalTransactionScanner出错,可考虑在配置类中加如下配置:
项目启动后,出现如下界面,即为springboot整合seata成功(出了半天的错误,经过不断的重试终于成功了)