Skip to content

Commit

Permalink
Update: 新增链路追踪很简单系列6篇文章
Browse files Browse the repository at this point in the history
  • Loading branch information
StabilityMan committed Jul 14, 2022
1 parent 0fa7a36 commit 05f58a2
Show file tree
Hide file tree
Showing 36 changed files with 667 additions and 3 deletions.
17 changes: 14 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,19 +91,30 @@
###### [【剖析 SOFARPC 框架】之 SOFARPC 链路追踪剖析](docs/diagnosis/tracing/剖析SOFARPC框架之SOFARPC链路追踪剖析.md)
###### [如何检测Web服务请求丢失问题](docs/diagnosis/tracing/如何检测Web服务请求丢失问题.md)
###### [让可观察性带上导航,快速发现和定位业务问题:OpenTracing上写入业务信息](docs/diagnosis/tracing/让可观察性带上导航_快速发现和定位业务问题_OpenTracing上写入业务信息.md)
###### [链路追踪(Tracing)其实很简单——初识.md](docs/diagnosis/tracing/链路追踪其实很简单——初识.md)
###### [链路追踪(Tracing)其实很简单——单链路诊断.md](docs/diagnosis/tracing/链路追踪其实很简单——单链路诊断.md)
###### [链路追踪(Tracing)其实很简单——全量存储? No! 按需存储? YES!.md](docs/diagnosis/tracing/链路追踪其实很简单——全量存储No按需存储YES.md)
###### [开源自建/托管与商业化自研Trace,如何选择?](docs/diagnosis/tracing/开源自建_托管与商业化自研Trace,如何选择?.md)
###### [前后端、多语言、跨云部署,全链路追踪到底有多难?](docs/diagnosis/tracing/前后端_多语言_跨云部署_全链路追踪到底有多难.md)
###### [链路分析 K.O “五大经典问题”](docs/diagnosis/tracing/链路分析K.O“五大经典问题”.md)
###### [链路追踪(Tracing)其实很简单——分布式链路追踪的起源](docs/diagnosis/tracing/链路追踪其实很简单——分布式链路追踪的起源.md)
###### [链路追踪(Tracing)其实很简单——分布式链路追踪的诞生](docs/diagnosis/tracing/链路追踪其实很简单——分布式链路追踪的诞生.md)
###### [链路追踪(Tracing)其实很简单——分布式链路追踪的应用与兴起](docs/diagnosis/tracing/链路追踪其实很简单——分布式链路追踪的应用与兴起.md)
###### [链路追踪(Tracing)其实很简单——分布式链路追踪的挑战与限制](docs/diagnosis/tracing/链路追踪其实很简单——分布式链路追踪的挑战与限制.md)
###### [链路追踪(Tracing)其实很简单——请求轨迹回溯](docs/diagnosis/tracing/链路追踪其实很简单——请求轨迹回溯.md)
###### [链路追踪(Tracing)其实很简单——多维链路筛选](docs/diagnosis/tracing/链路追踪其实很简单——多维链路筛选.md)
###### [链路追踪(Tracing)其实很简单——全量存储? No! 按需存储? YES!.md](docs/diagnosis/tracing/链路追踪其实很简单——全量存储No按需存储YES.md)

#### 3.6 RootCause
###### [系统黄金指标之延迟(Latency)指标的故障诊断](docs/diagnosis/rootcause/系统黄金指标之延迟指标的故障诊断.md)



## 版本迭代
* 2022-07-14
* [链路追踪(Tracing)其实很简单——分布式链路追踪的起源](docs/diagnosis/tracing/链路追踪其实很简单——分布式链路追踪的起源.md)
* [链路追踪(Tracing)其实很简单——分布式链路追踪的诞生](docs/diagnosis/tracing/链路追踪其实很简单——分布式链路追踪的诞生.md)
* [链路追踪(Tracing)其实很简单——分布式链路追踪的应用与兴起](docs/diagnosis/tracing/链路追踪其实很简单——分布式链路追踪的应用与兴起.md)
* [链路追踪(Tracing)其实很简单——分布式链路追踪的挑战与限制](docs/diagnosis/tracing/链路追踪其实很简单——分布式链路追踪的挑战与限制.md)
* [链路追踪(Tracing)其实很简单——请求轨迹回溯](docs/diagnosis/tracing/链路追踪其实很简单——请求轨迹回溯.md)
* [链路追踪(Tracing)其实很简单——多维链路筛选](docs/diagnosis/tracing/链路追踪其实很简单——多维链路筛选.md)
* 2022-04-15
* [OPLG:新一代云原生可观测最佳实践](docs/processing/monitor/OPLG_新一代云原生可观测最佳实践.md)@涯海
* 2021-11-17
Expand Down
Binary file added docs/diagnosis/tracing/image2/轨迹回溯_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/轨迹回溯_10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/轨迹回溯_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/轨迹回溯_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/轨迹回溯_5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/轨迹回溯_6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/轨迹回溯_7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/轨迹回溯_8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/轨迹回溯_9.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路兴起_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路兴起_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路兴起_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路兴起_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路兴起_5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路兴起_6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路兴起_7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路挑战_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路挑战_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路挑战_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路筛选_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路诞生_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路诞生_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/diagnosis/tracing/image2/链路诞生_3.png
Binary file added docs/diagnosis/tracing/image2/链路诞生_4.png
Binary file added docs/diagnosis/tracing/image2/链路诞生_5.png
Binary file added docs/diagnosis/tracing/image2/链路起源_1.png
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# 链路追踪(Tracing)其实很简单——分布式链路追踪的应用与兴起

> 作者:夏明(涯海)
> 创作日期:2022-07-14
> 专栏地址:[【稳定大于一切】](https://github.com/StabilityMan/StabilityGuide)
分布式链路追踪已经被广泛应用于中大型企业的 IT 运维领域,为分布式应用的性能诊断与稳定性保障提供了有效的帮助。此外,分布式链路追踪的开源和商业化生态也发展迅猛,大量独立服务商或云厂商纷纷跟进,共同推动了分布式链路追踪技术的崛起。

## 分布式链路追踪的应用
狭义上的分布式链路追踪(Tracing),是指跟踪请求在分布式系统中的流转路径与状态,主要用途是协助开发运维人员进行故障诊断、容量预估、性能瓶颈分析与调用链路梳理等工作。技术实现上包含了数据埋点、采集、存储、分析、可视化等环节,形成了一套完整的技术体系。

而更广义的分布式链路追踪,则涵盖了由数据透传能力衍生的生态系统,比如全链路压测、微服务流量路由、业务场景链路拆分等。我们可以为调用链路赋予业务语义,也可以将一次调用生命周期内的所有数据进行关联整合,不再局限于链路数据本身。

由此可见,分布式链路追踪的应用场景广阔,潜力巨大,它的核心属性就是“关联”。然而,分布式链路追踪(Tracing)相对于统计指标(Metrics)和应用日志(Logging)来说更加难以理解,不容易运用,更难用好。接下来,我们通过一个生动形象的例子,了解下分布式链路追踪的经典用法,加深对它的技术本质的掌握。

### 游客、收费站和交通局
分布式链路追踪的用法有很多,但是最经典、最常用的有三种,还是以上一节的高速公路为例,不同角色对应着不同的用法。

* 游客,只关心自身的行程路线,需要途经哪些收费站点?行驶时间有多长?沿途是否有拥堵或危险路段等。
* 收费站,只关心自身站点的状态,比如站点吞吐量、平均过闸时间等,以便于提前安排检票口值班人数。
* 交通局,会将所有的出行记录汇总,提前估算整个高速公路网的出行流量、易拥堵路段、事故多发路段等,以便于提前疏通或加固问题路段,并给出合理的建议出行路线,有时还需要提前制定车辆限流策略等。

分布式链路追踪的应用和行程轨迹追踪类似,游客关心的是单次请求的轨迹回溯,收费站关注的是服务接口维度的汇总统计,旅游局则类似全局链路拓扑梳理。

#### 单请求轨迹回溯
单请求轨迹回溯是分布式链路追踪最基础的功能,它记录了一次请求经过的所有服务节点以及对应的节点状态信息(接口名称、耗时、状态码等),这就好比记录了游客自驾游时经过的所有收费站,以及沿途的路况与行驶时间等信息。单请求轨迹回溯是诊断特定请求异常/超时原因的有效手段,可以快速定位异常节点(拥堵的收费站)。

比较成熟的 Tracing 产品(比如阿里云的 [ARMS](https://help.aliyun.com/document_detail/64995.html))除了基础的链路数据外,还会记录请求出入参、本地方法栈、关联 SQL 与异常堆栈等信息。这些细节信息就好比车辆的型号大小、驾驶员驾龄、是否醉酒、沿途每一路段的详细路况等,当调用不符合预期(行程异常)时,就可以精准的定位根因,如下图所示:

![image](image2/链路兴起_1.png)


#### 服务监控
假如你是收费站的站长,你会关注哪些信息?收费站的车辆吞吐量?平均的过闸时间?车辆的来源与去向?同理,每一个服务节点,将途经的所有调用信息汇总后,就可以得到当前服务接口的吞吐量、耗时、来源与去向等统计指标。这些指标可以帮助我们快速识别当前服务的健康状态。在实际生产系统中,还可以与告警系统结合,实现风险的快速识别与处理,降低业务损失。

![image](image2/链路兴起_2.png)

#### 链路拓扑
假如你是交通局的局长,你可能会关注全国高速公路网的整体运行状态,有哪些易拥堵或事故多发路段与站点,如何确保春运高峰期核心路段运行通畅,不会出现重大交通瘫痪事件等等。此时,你需要对所有的车辆行程轨迹进行汇总分析。

同理,链路拓扑就是将全局或某一入口服务的所有调用链路进行汇总,聚合为链路拓扑大图,进而分析当前链路的性能瓶颈点、易故障点等,提前进行性能优化或风险防控,还可以根据历史流量来指导未来(比如双11大促)的容量评估。

![image](image2/链路兴起_3.png)


## 分布式链路追踪的发展现状
截止到 2021年,分布式链路追踪(Tracing)已经成为主流软件架构不可或缺的基础技术之一,它与指标(Metrics)、日志(Logging)并称为可观测领域的“三驾马车”,它们三者之间的关系如下图所示:

![image](image2/链路兴起_4.png)


随着 Kubenetes 容器技术与云计算的普及,未来的软件架构会更加趋向分布式云、微服务化的方向,软件开发、部署成本将大幅下降,但是系统维护和问题诊断的难度却急剧上升。因此,分布式链路追踪以及由它提供的“确定性关联”价值将愈加凸显,如下图所示:

![image](image2/链路兴起_5.png)

Tracing 在开源社区也颇受喜爱,拥有着旺盛的生命力,主流的开源标准包括 OpenTelemetry、OpenTracing、OpenCensus 和国内使用较多的 SkyWalking。其他影响力较强的实现还包括 Jaeger、Zipkin、Pinpoint等,如下图所示。

![image](image2/链路兴起_6.png)

在商业化领域,Tracing 与 APM(Application Performance Mornitoring) 密切绑定,绝大部分厂商会面向应用视角提供更加全面、易用的 APM 服务,而不仅仅是 Tracing 服务。参考 2021 年 Gartner 评测机构给出的 APM 魔力象限,可以大致评估各大厂商的 APM 与 Tracing 产品能力,如下图所示。

![image](image2/链路兴起_7.png)

截止 2021年,阿里巴巴 98% 的 Java 应用(上万级别)均已接入内部自研的分布式链路追踪系统 EagleEye;阿里云上有近万家企业在持续使用 ARMS 提供的分布式链路追踪服务。而从整个业界来看,无论是谷歌、亚马逊这样的国际大厂,还是新兴的互联网公司,或是传统企业,都在大规模接入和应用分布式链路追踪技术,Tracing 生态正在蓬勃发展。


## 推荐阅读
《链路追踪(Tracing)其实很简单》系列文章

- 1 什么是分布式链路追踪
- [1.1 分布式链路追踪的起源](./链路追踪其实很简单——分布式链路追踪的起源.md)
- [1.2 分布式链路追踪的诞生](./链路追踪其实很简单——分布式链路追踪的诞生.md)
- [1.3 分布式链路追踪的应用与兴起](./链路追踪其实很简单——分布式链路追踪的应用与兴起.md)
- [1.4 分布式链路追踪的挑战与限制](./链路追踪其实很简单——分布式链路追踪的挑战与限制.md)
- 2 分布式链路追踪的基础用法
- [2.1 请求轨迹回溯](./链路追踪其实很简单——请求轨迹回溯.md)
- [2.2 多维链路筛选](./链路追踪其实很简单——多维链路筛选.md)
- 2.3 链路实时分析、监控与告警
- 2.4 链路拓扑


## 推荐产品
- [阿里云 ARMS 可观测](https://help.aliyun.com/product/34364.html)
- [阿里云链路追踪](https://help.aliyun.com/document_detail/196681.html)



## 推荐社区
【稳定大于一切】打造国内稳定性领域知识库,**让无法解决的问题少一点点,让世界的确定性多一点点。**

- GitHub 专栏地址:[https://github.com/StabilityMan/StabilityGuide](https://github.com/StabilityMan/StabilityGuide)
- 微信公众号:万物可观测
- 钉钉交流群号:30000312
- 如果阅读本文有所收获,欢迎分享给身边的朋友,期待更多同学的加入!
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# 链路追踪(Tracing)其实很简单——分布式链路追踪的挑战与限制

> 作者:夏明(涯海)
> 创作日期:2022-07-14
> 专栏地址:[【稳定大于一切】](https://github.com/StabilityMan/StabilityGuide)
作为一门新兴技术,分布式链路追踪的技术演进史并不算长,仅有十数年。目前,它仍处于不断被探索、快速迭代的周期。为了更好的了解与应用分布式链路追踪技术,我们来看下它目前面临的几项关键挑战与限制。

## 关键挑战与应对
分布式链路追踪技术从诞生到大规模应用,中间经历了一段较长的蛰伏期,直到近几年才逐渐被大家广泛接受和认可。影响其快速推广的关键挑战包括如下几点:

* **前期建设成本高:** 无论是在不同组件接口上进行插桩埋点,还是保证链路上下文能够正确传播,亦或是搭建一套稳定可靠的链路数据后端处理系统,都不是一件易事,需要投入大量的研发人力。
* **数据处理成本高:** 由于链路数据与请求流量成正比,每一次请求都会记录相应的链路日志,当系统流量爆炸式增长,相应的链路数据生成、采集、处理、存储、查询的成本也会急剧上升,带来巨大的 IT 资源开销。
* **价值没有得到普遍认可:** 基础的链路数据仅仅表达了接口间的调用依赖,没有释放足够的业务价值,难以得到领导和同事们的全力支持。
* **链路标准不统一:** 分布式链路追踪发展前期没有统一的业界标准,各家厂商百花齐放,虽然一定程度上促进 Tracing 技术的多元化探索,但也为链路融合、迁移和推广带来了巨大的挑战。

当然,挑战同样也是机遇,为了应对上述问题,分布式链路追踪近几年实现了如下技术突破:

* **无侵入探针 + 一体化解决方案:** 类似 JavaAgent 的探针插桩技术,实现了0代码入侵,0改造成本的链路自动埋点,而类似 SkyWalking 的开源实现还提供了端到端的一体化解决方案,从链路数据生成到最后的可视化,中小企业可以快速搭建并享受到分布式链路追踪技术的价值,大幅降低了 Tracing 的前期建设成本和接入门槛。
* **链路采样 + 边缘计算:** 链路采样策略,例如固定比例采样、限流采样、错慢全采、自定义标签采样等,可以大幅降低链路数据的传输、处理、存储成本;结合用户网络内的指标聚合,长文本编码/压缩等边缘计算技术,可以合理控制分布式链路追踪的数据成本,保障链路系统持续健康运转。
* **关联分析 + 立体化可观测:** 单条链路的价值难以凸显,但是基于成千上万条链路的聚合/关联分析却能快速定位,导致系统异常的关键因素,比如版本、地域、用户类型等。同时,结合业务、容器、基础设施等其他层面的可观测数据,建立一套端到端、立体化的可观测体系,能够更加有效地释放分布式链路追踪的技术价值。
* **开源标准趋向统一:** 自从 2019 年 OpenTelemetry 开源立项,得到了两大主流开源实现 OpenTracing 和 OpenCensus 的大力支持,开启了可观测性的新时代。虽然,目前 OpenTelemetry 仅在 Tracing 领域拥有比较完善的技术标准,Metrics 和 Logging 仍在探索阶段,但是可观测性“三驾马车”融合一统的趋势已经势不可挡。未来基于统一完善的可观测数据标准,分布式链路追踪的“确定性关联”将得到更加广泛的应用。

## 现阶段能力限制
分布式链路追踪现有的模型设计与实现,可以有效满足许多经典场景的分布式诊断诉求。但是,仍然有大量场景超出了现阶段分布式链路追踪的能力范畴,需要我们去探索更好的方案。

### 树形 YES!图形 NO!
本章第2小节介绍了分布式链路追踪是通过 ParentSpanId 和 SpanId 来标识依赖关系,从而准确还原链路层级与顺序。但是,每个 Span 有且仅有一个 ParentSpanId,这就限制了所有链路形态只能是单个父节点的树形结构,而不能是多个父节点的图形结构。

某些系统为了提供重复调用的效率,会将多次 RPC 调用打包成一次 RPC 调用合并发送,这种入度大于1的图形结构,就无法通过调用链真实还原调用状态,而是会被拆成多条调用链,如下图所示:

![image](image2/链路挑战_1.png)

### 人工插桩 YES!智能插桩 NO!
无论是 SDK 或是 Agent 模式,目前工业界的链路插桩主要是依赖人工发现插桩点并实现插桩过程,很难通过算法自适应的实现插桩点的智能发现。然而,学术界在这方面已经进行了一些有意思的探索,虽然在性能开销、安全等方面还不够成熟,但是值得关注。

2019 年波士顿大学发表了一篇研究智能插桩的文章,他们实现的 Pythia 原型系统针对性能退化问题,可以自动发现更有价值的内部插桩点。例如,我们在请求一个存储系统时,可能会直接命中缓存快速返回结果,也可能未命中缓存导致加载磁盘花费了较多时间。我们仅在 RPC 层面进行插桩,只能看到请求耗时高低起伏,呈现一种双峰式的分布,但无法确认根因是什么。Pythia 通过比对分析不同的链路数据,会自动发现影响性能的潜在插桩点,比如慢请求可能会额外调用一次 fetchFromDisk 方法,从而更清晰的解释影响请求耗时的根因,如下图所示。

![image](image2/链路挑战_2.png)

![image](image2/链路挑战_3.png)


分布式链路追踪的能力限制远不止以上两种场景,在离线分析、机器学习等多个领域也等待我们去探索攻克。我们既要充分发挥现有的分布式链路追踪技术价值,解决当下的企业运维困难;同时也要把视野放宽,在未来更多的领域中去拓展分布式链路追踪的边界。


## 推荐阅读
《链路追踪(Tracing)其实很简单》系列文章

- 1 什么是分布式链路追踪
- [1.1 分布式链路追踪的起源](./链路追踪其实很简单——分布式链路追踪的起源.md)
- [1.2 分布式链路追踪的诞生](./链路追踪其实很简单——分布式链路追踪的诞生.md)
- [1.3 分布式链路追踪的应用与兴起](./链路追踪其实很简单——分布式链路追踪的应用与兴起.md)
- [1.4 分布式链路追踪的挑战与限制](./链路追踪其实很简单——分布式链路追踪的挑战与限制.md)
- 2 分布式链路追踪的基础用法
- [2.1 请求轨迹回溯](./链路追踪其实很简单——请求轨迹回溯.md)
- [2.2 多维链路筛选](./链路追踪其实很简单——多维链路筛选.md)
- 2.3 链路实时分析、监控与告警
- 2.4 链路拓扑


## 推荐产品
- [阿里云 ARMS 可观测](https://help.aliyun.com/product/34364.html)
- [阿里云链路追踪](https://help.aliyun.com/document_detail/196681.html)



## 推荐社区
【稳定大于一切】打造国内稳定性领域知识库,**让无法解决的问题少一点点,让世界的确定性多一点点。**

- GitHub 专栏地址:[https://github.com/StabilityMan/StabilityGuide](https://github.com/StabilityMan/StabilityGuide)
- 微信公众号:万物可观测
- 钉钉交流群号:30000312
- 如果阅读本文有所收获,欢迎分享给身边的朋友,期待更多同学的加入!
Loading

0 comments on commit 05f58a2

Please sign in to comment.