入门和使用
官网地址:http://seata.io/zh-cn/index.html
百度搜索一些文章
使用方法
非常简单,在service服务的接口上添加@GlobalTransactional注解即可
引入依赖
引入cloud alibaba依赖 折叠原码
1 2 3 4 5 6 7 8 9 |
|
seata依赖 折叠原码
1 2 3 4 5 |
|
配置文件
seata配置 折叠原码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
注意事项
1.使用原版本的oracle驱动,引入seata后会报错,所以需要升级驱动,依赖如下:
oracle驱动
|
2.在新BOSS中,只有一个主库,其余的用户都是建立的同义词或者视图,如果用户中没有对应数据,seata操作时会报错,报schema找不到相关错误
在seata中操作数据时,会拼接 用户.表名等逻辑,所以需要主动设置schema信息,否则就会找当前微服务设置的用户
schema 展开原码
以上方式不可取,新的解决方案如下:
另外,需要在nacos配置中心上面配置全局schema的值,在common-platform中增加globalSchema变量,值为主库的用户名。
以后现场中也可以直接配置为主库的用户名即可。
3.在所有下游服务中,在启动类中增加SeataXIDFilter.class拦截器
seata 折叠原码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
|
4.nacos中配置服务url的地方,需要将值改为空
Feign 折叠原码
1 2 3 4 |
|
5.在每个微服务中的application.yml里面,spring.profiles.include中加上一个seata
配置 折叠原码
1 2 3 |
|