10.凤凰架构:构建可靠的大型分布式系统 --- 可观测性
Posted enlyhua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10.凤凰架构:构建可靠的大型分布式系统 --- 可观测性相关的知识,希望对你有一定的参考价值。
第10章 可观测性
客观测性,原本的含义是 "可以由其外部输出判断其内部状态的程度"。学术界一般会将可观测性分解为3个更具体的方向进行研究,分别是:
1.事件日志(Logging)
日志的职责是记录离散的事件,通过这些记录分析程序的行为,譬如曾经调用过哪些方法,操作过哪些数据库等。输出日志很容易,但收集和分析日志
可能会很复杂。
2.链路追踪(Tracing)
单体时代追踪的范畴基本只限于 栈追踪。微服务时代,追踪就不只局限于调用栈了,一个外部请求需要内部若干个服务的联动响应,这时候完整的调用轨迹
将跨越多个服务,同时包含服务间的网络传输信息与各个服务内部的调用堆栈信息,因此分布式追踪又称为"全链路追踪"。追踪的主要目的是排查故障。
3.聚合度量(Metrics)
度量是指对系统中某一类信息的统计聚合。度量的主要目的是监控(Monitoring)和预警(Alert)。
在工业界,日志、度量两个领域的胜利者算是基本已经尘埃落定了。日志收集和分析基本是ELK,还有什么变化的话,基本是Logstash可能被Fluented取代的趋势。
度量方面,跟随k8s统一容易编排的步伐,Promethues有而击败了度量领域的Zabbix为代表众多前辈。
追踪方面的情况与日志、度量不同,追踪是与具体网络协议、程序语言密切相关,收集日志不必关心这段日志是由Java还是Golang输出的,对程序来说它们就是一段非
结构化文本而已,同理,度量对程序来说也只是一个个聚合的数据指标而已。但追踪不一样,各个服务之间使用HTTP还是gRPC来进行通信会直接影响追踪的实现,各个服务
是使用Java还是Golang来编写,也会直接影响进程内调用栈的追踪方式。这种特性决定了追踪工具本身不会一家独大,也决定了追踪工具本身具有较强的入侵性&#x
以上是关于10.凤凰架构:构建可靠的大型分布式系统 --- 可观测性的主要内容,如果未能解决你的问题,请参考以下文章
17.凤凰架构:构建可靠的大型分布式系统 --- 技术演示工程实践
1.凤凰架构:构建可靠的大型分布式系统 --- 服务架构演进史