上一篇介绍了Seata server,这一篇重点讲一下 Seata client的启动。
Client顾名思义就是使用了seata框架的客户端,
我们这里使用的是微服务框架,所以微服务即是 seata client。
1. 环境:
组件 | 版本 |
SpringBoot | 2.1.18.RELEASE |
SpringCloud | Greenwich.SR6 |
Oracle | 12C |
由于本人测试,使用的数据库是oracle,
当然Seata对mysql的支持更好一些,使用起来并没有什么区别。
只是undo_log的sql不同。
2. 配置:
首先是application.yml
seata:
tx-service-group: his_tx_group
config:
type: file
file:
name: file.conf
service:
vgroup-mapping:
his_tx_group: seata-server-ta # 此处配置对应Server端配置registry.eureka.application的值
registry:
type: eureka
eureka:
service-url: http://192.168.187.28:8081/eureka
weight: 1
详细配置,如果未使用配置中心,只用file类型,
可将server中的file.conf文件,拷贝到配置文件路径下即可。
如图
file.conf可以进行更详细的参数配置,参数参考网址:
3. 启动:
启动服务前,要在当前连接的数据库中创建undo_log表
脚本如下:
CREATE TABLE undo_log
(
id NUMBER(19) NOT NULL,
branch_id NUMBER(19) NOT NULL,
xid VARCHAR2(100) NOT NULL,
context VARCHAR2(128) NOT NULL,
rollback_info BLOB NOT NULL,
log_status NUMBER(10) NOT NULL,
log_created TIMESTAMP(0) NOT NULL,
log_modified TIMESTAMP(0) NOT NULL,
PRIMARY KEY (id),
CONSTRAINT ux_undo_log UNIQUE (xid, branch_id)
);
COMMENT ON TABLE undo_log IS 'AT transaction mode undo table';
-- Generate ID using sequence and trigger
CREATE SEQUENCE UNDO_LOG_SEQ START WITH 1 INCREMENT BY 1;
注:此sql也是从角落找到的,官方并未给出,
因代码无侵入,client代码为普通springboot web工程,所以代码无需修改,
直接启动微服务即可,
启动日志包括如下:
启动成功,已注册上seata server
后续文章,将讲解如何使用seata 开启事务,及测试demo..
喜欢的朋友请 “点赞收藏”,多谢支持!