版本升级指南
12. 升级到 seata 2.7 有哪些兼容性事项是需要注意的?11. 升级到 seata 2.5 有哪些兼容性事项是需要注意的?
10. 升级到 seata 2.4 有哪些兼容性事项是需要注意的?
9. 升级到 seata 2.1 有哪些兼容性事项是需要注意的?
8. 升级到 seata 2.0 有哪些兼容性事项是需要注意的?
7. 升级到 seata 1.6.x 有哪些兼容性事 项是需要注意的?
6. 升级到 seata 1.5.0 有哪些兼容性事项是需要注意的?
5. 升级到 seata 1.4.0 有哪些兼容性事项是需要注意的?
4. 升级到 seata 1.3.0 有哪些兼容性事项是需要注意的?
3. 升级到 seata 1.2.0 有哪些兼容性事项是需要注意的?
2. 升级到 seata 1.1.0 有哪些兼容性事项是需要注意的?
1. 0.8、0.9版本如何升级到1.0版本?
12. 升级到 seata 2.7 有哪些兼容性事项是需要注意的?
注意事项
- Seata 2.7 新增统一 JSON 模块
json-common,用于统一 Seata 内部的 JSON 序列化、反序列化和安全控制能力。 - 当前默认 JSON 序列化器为
jackson。未显式配置 JSON 序列化器时,JsonUtil会解析为jackson。 - JSON 序列化器推荐通过 Spring Boot 配置
seata.json.serializer-type或 Seata 原生配置json.serializerType切换,可选值为jackson、fastjson、fastjson2、gson、jackson3。 - Seata 2.7 新增
fastjson2和jackson3支持;如果计划启用jackson3,运行环境需要为 JDK 17 及以上。 - 如果配置了
jackson3,但当前环境中jackson3实现不可用,Seata 会自动降级到jackson。 - Seata 2.7 新增 JSON 反序列化 allowlist 机制。若业务对象通过带类型信息的 JSON 参与反序列化,而目标类不在 allowlist 中,可能出现
Class not in JSON deserialization allowlist异常。 - 如需放行业务自定义类,可通过
seata.json.allowlist=com.example.order.,com.example.dto.,com.example.CustomContext补充 allowlist;以.结尾表示包前缀匹配,不以.结尾表示精确类名匹配。 - 默认 allowlist 已包含常见 JDK 基础类型、集合类型、时间类型,以及
org.apache.seata.和io.seata.包前缀。 - 旧的 TCC 专用配置
seata.tcc.context-json-parser-type/tcc.contextJsonParserType仍可作为兼容兜底读取,但从 2.7.0 起已废弃;如果新旧配置同时存在,优先使用新的json.serializerType。
11. 升级到 seata 2.5 有哪些兼容性事项是需要注意的?
注意事项
- server移除了spring-boot-web相关组件,故http端口合并至seata事务端口皆为8091,请将
server.port改成与事务端口一致(默认值: 8091)
10. 升级到 seata 2.4 有哪些兼容性事项是需要注意的?
注意事项
- server移除控制台,如果需要访问控制台请部署namingserver,并将seata-server注册至namingserver中(seata-server支持同时注册至多个注册中心)
- 2.4.0版本临时移除raft注册中心的username及password,如果集群为raft模式,并且版本为2.4.0可不需要配置。
9. 升级到 seata 2.1 有哪些兼容性事项是需要注意的?
注意事项
- 使用seata2.0 raft 存储模式后,升级2.1需要登录后获取token,携带token请求/metadata/v1/cluster?group=在application.yml中的seata.server.raft.group的值,查询到集群元数据后。将follower节点先行升级,再升级leader节点。注:该升级完成后,raft存储模式下是不允许降级至2.0,请在线下环境得到充分验证后再进行生产环境升级。
- 用户在升级到seata2.1时需要配置seata raft的鉴权信息,首先在seata server端的
ignore.url中增加/metadata/v1/**用以暂时关闭鉴权功能,然后在seata client端application.yaml或registry.conf中的seata.registry.raft中配置好username和password以及tokenValidityInMilliseconds(需要注意的是client端的username和password应当与server端所配置的保持一致,client端的tokenValidityInMilliseconds应当略小于你在server端配置的tokenValidityInMilliseconds),最后在server端移除ignore.url中的/metadata/v1/**用以开启raft元数据鉴权能力。
8. 升级到 seata 2.0 有哪些兼容性事项是需要注意的?
Details
注意事项
从1.8.x 版本升级2.0.x 版本,如果undolog或通信编解码的配置为fst都需要先提前在client修改为fst以外的序列化方式,server侧才可进行升级。 注: 2.0.0的server 存在at模式下资源重入,比如一个全局事务中,非同一个本地事务进行了多次相同的数据修改,注册了多个分支后会导致二阶段下发顺序异常,故如果有此类场景请勿升级到2.0.0版本,建议升级到最新snapshot或更高版本。 注解@LocalTCC要修饰在实现类上,注解@TwoPhaseBusinessAction要修饰在实现类方法prepare上。7. 升级到 seata 1.6.x 有哪些兼容性事项是需要注意的?
Details
注意事项
从1.5.x 版本升级1.6.x 版本,无论 client SDK 还是 seata-server 都是完全平滑兼容的,无需除升级版本外的其他改动。6. 升级到 seata 1.5.0 有哪些兼容性事项是需要注意的?
注意事项
- seata-server 存储模式为 db 时,需要注意表结构变更,在升级1.5.0 前需先变更表结构:
- 表结构字符集统一从 utf8 调整为 utf8mb4
- global_table 调整索引从 idx_gmt_modified_status 调整为 idx_status_gmt_modified
- lock_table 增加 status 字段,增加 idx_status,idx_xid_and_branch_id 索引
- 增加 distributed_lock 表用于 seata-server 异步任务调度 升级1.5.0前,请注意表结构变更,表结构详情请点击此处
-
TCC事务模式在1.5.0 增加防悬挂功能,如需由 Seata 框架开启防悬挂,需要提前在客户端业务库中增加此表
-
TCC模式一阶段方法进行了优化,不再需要在一阶段的接口入参定义
BusinessActionContext,若一阶段需要使用到BusinessActionContext