久等 | Seata 分布式事務(wù)解決方案 1.5 發(fā)布
一、seata 1.5 新特性
鴿了一年的 seata 1.5 終于發(fā)布, 目前 pig 微服務(wù)開發(fā)框架[1]已經(jīng)適配 1.5 版本,快來(lái)開箱測(cè)試。
① 更強(qiáng)能力的Seata 企業(yè)版
目前阿里云開發(fā)seata企業(yè)版已經(jīng)開放公測(cè),提供Seata全托管和比開源Seata 更強(qiáng)更穩(wěn)定的內(nèi)核能力。企業(yè)版相比開源版內(nèi)核 rt 降低 20% 以上,tps 提升 30%,考慮到相比自建的參數(shù)調(diào)優(yōu)、依賴組件調(diào)優(yōu)和基礎(chǔ)設(shè)施等優(yōu)勢(shì),同規(guī)格整體性能預(yù)計(jì)提升約 100%+。同時(shí),企業(yè)版解決了高并發(fā)場(chǎng)景下的事務(wù)處理“毛刺”問(wèn)題。
② 圖形化控制臺(tái)
在線事務(wù)信息

支持 DB、Redis、File 模式 
特別注意: 控制臺(tái)默認(rèn)端口為 7091
③ 支持 skywalking 事務(wù)跟蹤
apm-seata-skywalking-plugin-1.5.1.jar[2]
在日志中打印 XID 的同時(shí)打印 TraceId ,當(dāng)出現(xiàn)問(wèn)題想回溯 XID 相關(guān)聯(lián)的全局鏈路時(shí),在 SkyWalking 的展示端輸入 TraceId 即可,通過(guò) Seata 整體監(jiān)控融入 SkyWalking ,不僅擁有全鏈路領(lǐng)域的監(jiān)控,還在儀表盤、拓?fù)鋱D、在線剖析和報(bào)警都得到了監(jiān)控。

④ seata-server 配置支持 yaml 配置

如果剛開始接觸 seata, 一定對(duì)于 seata 的配置文件很懵,自 1.5 后 這些統(tǒng)統(tǒng)都可以通過(guò) application.yml 實(shí)現(xiàn)。
二、淺嘗一下 seata 分布式事務(wù)

① 部署 seata-server
下載 seata-server-1.5.1.zip 并解壓
# windows
seata-server.bat -p 8091 -h 127.0.0.1 -m file
# mac or linux
sh seata-server.sh -p 8091 -h 127.0.0.1 -m file
② 添加依賴
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-seata</artifactId>
</dependency>
③ 服務(wù)調(diào)用方聲明 GlobalTransactional
@GlobalTransactional // 分布式事務(wù)注解
@Transactional(rollbackFor = Exception)
public R consumer() {
feign.providerMethod() // 通過(guò)feign 調(diào)用 服務(wù)提供方的接口
}
④ 微服務(wù)涉及數(shù)據(jù)庫(kù)添加 undo_log 表
CREATE TABLE `undo_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`branch_id` bigint(20) NOT NULL,
`xid` varchar(100) NOT NULL,
`context` varchar(128) NOT NULL,
`rollback_info` longblob NOT NULL,
`log_status` int(11) NOT NULL,
`log_created` datetime NOT NULL,
`log_modified` datetime NOT NULL,
`ext` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
參考資料
pig 微服務(wù)開發(fā)框架: https://gitee.com/log4j/pig
[2]apm-seata-skywalking-plugin-1.5.1.jar: https://seata.io/zh-cn/docs/user/apm/skywalking.html
公眾號(hào)開通微信交流群啦 快來(lái)加入
