ToB企服应用市场:ToB评测及商务社交产业平台

标题: Seata 的可观测实践 [打印本页]

作者: 郭卫东    时间: 2024-12-10 15:08
标题: Seata 的可观测实践
Seata 简介

Seata 的前身是阿里巴巴集团内大规模使用保证分布式事务一致性的中心件,Seata 是其开源产物,由社区维护。在先容 Seata 前,先与大家讨论下我们业务发展过程中经常遇到的一些问题场景。
业务场景

我们业务在发展的过程中,根本上都是从一个简朴的应用,逐渐过渡到规模庞大、业务复杂的应用。这些复杂的场景不免遇到分布式事务管理问题,Seata 的出现正是解决这些分布式场景下的事务管理问题。先容下此中几个经典的场景:
场景一:分库分表场景下的分布式事务


起初我们的业务规模小、轻量化,单一数据库就能保障我们的数据链路。但随着业务规模不断扩大、业务不断复杂化,通常单一数据库在容量、性能上会遭遇瓶颈。通常的解决方案是向分库、分表的架构演进。此时,即引入了分库分表场景下的分布式事务场景。
场景二:跨服务场景下的分布式事务


降低单体应用复杂度的方案:应用微服务化拆分。拆分后,我们的产物由多个功能各异的微服务组件构成,每个微服务都使用独立的数据库资源。在涉及到跨服务调用的数据一致性场景时,就引入了跨服务场景下的分布式事务。
Seata 架构



Seata 的可观测实践

为什么需要可观测?


可观测能力概览


Metrics 维度

设计思路

模块设计



metrics 模块工作流


上图是 metrics 模块的工作流,其工作流程如下:
TC 焦点指标


TM 焦点指标


RM 焦点指标


大盘展示


Tracing维度

Seata 为什么需要 tracing?

Seata 的 tracing 解决方案


基于上述的方式,Seata 实现了事务全链路的 tracing,具体接入可参考为[Seata 应用 | Seata-server]接入 Skywalking[1]
tracing 效果







Logging 维度

设计思路


Logging 这一块其实负担的是可观测这几个维度当中的兜底脚色。放在最底层的,其实就是我们日志格式的设计,只有好日志格式,我们才能对它进行更好的采集、模块化的存储和展示。在其之上,是日志的采集、存储、监控、告警、数据可视化,这些模块更多的是有现成的工具,比如阿里的 SLS 日志服务、另有 ELK 的一套技术栈,我们更多是将开销成本、接入复杂度、生态繁荣度等作为考量。
日志格式设计

这里拿 Seata-Server 的一个日志格式作为案例:


总结&猜测

Metrics
总结:根本实现分布式事务的可量化、可观测。猜测:更细粒度的指标、更广阔的生态兼容。
Tracing
总结:分布式事务全链路的可追溯。猜测:根据 xid 追溯事务链路,异常链路根因快速定位。
Logging
总结:结构化的日志格式。猜测:日志可观测体系演进。
作者:察溯
原文链接
本文为阿里云原创内容,未经允许不得转载。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4