Seata 新特性,APM 支持 SkyWalking
作者:趙禹光,Seata Contributor,SkyWalking PMC
?
背景前序
?
正如所看到的文章題目,就在此時,Seata 與 SkyWalking 兩個生態(tài)融合,取得了階段性成果。下面就結(jié)合文章內(nèi)容,給你徐徐道來。
?
事情的起因是這樣的,Seata、SkyWalking 分別是分布式事務(wù)領(lǐng)域、一站式 APM 領(lǐng)域的的佼佼者,這一點(diǎn)通過 Github Star 排名就可以知道,也就不再贅述了。所以早在 2019 年,Seata 的用戶就提出了使用 SkyWalking 觀測的訴求。
?
Seata 融入 SkyWalking 監(jiān)控后,就有了 APM 特性,用戶在定位 Seata 分布式事務(wù)的問題時,可以通過分布式鏈路、機(jī)器指標(biāo)、日志內(nèi)容等多個維度進(jìn)行問題剖析,實(shí)現(xiàn)定位問題的提效。
?
那結(jié)合這個訴求,兩個社區(qū)感興趣的同學(xué)就開始展開了初步討論和實(shí)踐,但是由于當(dāng)時 Seata 的傳輸協(xié)議中,沒有類似于 HTTP Header 的面向傳輸?shù)南㈩^部,所以實(shí)現(xiàn)的第一版雖然實(shí)現(xiàn)了監(jiān)控觀測,但是兼容性非常不友好,這在解決分布式事務(wù)的監(jiān)控中,顯然是有欠缺的。故此,我們開啟了二番討論,結(jié)論是兼容性的前置條件是必須的,所以,Seata 要實(shí)現(xiàn)傳輸協(xié)議升級,就此 Seata 將此事放在了 RoadMap 中。SkyWalking 社區(qū)這邊也暫時擱置了這件事。
?
時光荏苒,轉(zhuǎn)眼 1 年多就過去了,Seata 社區(qū)在過程中已經(jīng)完成了傳輸協(xié)議的升級,那我們就重啟此事。
?
一、Seata 接入 SkyWalking 后,用戶得到了什么
?
背景已經(jīng)敘述完了,由于時間有些久,可能大家對兩個生態(tài)融合之后帶來的效果,也不是很清晰了,這里就我的個人的理解,介紹下兩個生態(tài)融合后,給用戶帶來的益處:
?
- Seata的性能可被更好的觀測:
?
我看到很多 Seata 分享的時候都有用戶提問,Seata性能消耗數(shù)據(jù),因?yàn)榉植际绞聞?wù)的性能消耗與場景關(guān)系非常大,所以用戶通過 SkyWalking 可以更簡單的觀測自己的場景,自己給自己答案。
?
- 分布式事務(wù)執(zhí)行過程有痕跡
?
在 AT 模式下,Seata 通過面向傳輸?shù)南㈩^部,傳遞全局事務(wù) XID ,全局事務(wù)執(zhí)行完成后,每個在 DB 中的執(zhí)行過程都會被清理掉,這在回溯執(zhí)行過程的時候非常不友好,這些海量數(shù)據(jù) Seata 可不會存儲,這嚴(yán)重增加分布式事務(wù)關(guān)聯(lián)數(shù)據(jù)庫表的空間,帶來不必要的性能消耗。所以兩個生態(tài)融合后,SkyWalking 相關(guān)的數(shù)據(jù)庫監(jiān)控,就可以記錄這些執(zhí)行過程的海量數(shù)據(jù)。
?
- 定位問題的提效
在日志中打印 XID 的同時打印 TraceId ,當(dāng)出現(xiàn)問題想回溯 XID 相關(guān)聯(lián)的全局鏈路時,在 SkyWalking 的展示端輸入 TraceId 即可,通過 Seata 整體監(jiān)控融入 SkyWalking ,不僅擁有全鏈路領(lǐng)域的監(jiān)控,還在儀表盤、拓?fù)鋱D、在線剖析和報(bào)警都得到了監(jiān)控。
?
- 入門 Seata 提高一個維度
?
分布式事務(wù)一直被炒得很熱,但真正能在市場上落地的也只有 Seata ,所以 Seata 并沒有開源的學(xué)習(xí)范本,所以快速帶領(lǐng)大家入門的資料也比較少。而且 Seata 有3個角色、4種經(jīng)典模式,可以多種組合,綜上所訴,不由得讓使用者云里霧里,兩個生態(tài)融合后,用戶可以清晰從上帝(監(jiān)控)知道 Seata 的執(zhí)行過程,進(jìn)而透析工作原理。
?
二、典型 AT 模式監(jiān)控場景
?
下面就官方 AT 模式的 Demo ,展示下接入后的 APM 特性。
?
官方描述的 ToC 交易場景
當(dāng) Seata 與 SkyWalking 融合后,場景復(fù)原
全局事務(wù)正常鏈路描述
?
全局事務(wù)異常鏈路描述
用戶手冊
官網(wǎng)
SkyWalking APM:
http://seata.io/zh-cn/docs/user/apm/skywalking.html
常用鏈接
Seata: https://github.com/seata/seata
Samples: https://github.com/seata/seata-samples
Release: https://github.com/seata/seata/releases
官網(wǎng): https://seata.io
?
投稿
歡迎大家將 Seata 相關(guān)的實(shí)踐文章投稿至:slievrly@gmail.com
?
總結(jié)
以上是生活随笔為你收集整理的Seata 新特性,APM 支持 SkyWalking的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 春色满园关不住,带你体验阿里云 Knat
- 下一篇: OpenKruise :SidecarS