简介
在分布式系统中,服务之间通过网络进行远程调用,而网络本身的不可靠性、服务节点的故障、依赖资源的瓶颈等因素,都可能导致服务调用失败。如果缺少容错机制,一次局部的故障可能会沿着调用链向上传播,引发请求堆积、资源耗尽,最终演变为整个系统的雪崩。
服务容错的目标是在故障发生时,通过限流、降级、熔断、隔离、重试等手段,控制故障的影响范围,保障系统在部分组件异常的情况下仍能对外提供核心服务,提升系统的弹性和可用性。
在分布式系统中,服务之间通过网络进行远程调用,而网络本身的不可靠性、服务节点的故障、依赖资源的瓶颈等因素,都可能导致服务调用失败。如果缺少容错机制,一次局部的故障可能会沿着调用链向上传播,引发请求堆积、资源耗尽,最终演变为整个系统的雪崩。
服务容错的目标是在故障发生时,通过限流、降级、熔断、隔离、重试等手段,控制故障的影响范围,保障系统在部分组件异常的情况下仍能对外提供核心服务,提升系统的弹性和可用性。
链路追踪系统广义的概念是:由数据采集、数据处理和数据展示三个相对独立的模块所构成的分布式追踪系统;链路追踪系统狭义的概念是:特指链路追踪的数据采集。譬如 Spring Cloud Sleuth 就属于狭义的链路追踪系统,通常会搭配 Zipkin 作为数据展示,搭配 Elasticsearch 作为数据存储来组合使用;而 Zipkin、Pinpoint、SkyWalking、CAT 都属于广义的链路追踪系统。
当服务消费者与服务提供者之间建立了通信,作为管理者需要通过监控手段来观察服务是否正常,调用是否成功。服务监控是很复杂的,在微服务架构下,一次用户调用会因为服务化拆分后,变成多个不同服务之间的相互调用,这也就需要对拆分后的每个服务都监控起来。
服务监控是分布式系统可观测性的核心组成部分。它通过持续采集、存储、分析和展示系统运行时的各项指标数据,帮助运维和开发人员了解系统的实时状态,及时发现并定位问题,从而保证业务持续稳定运行。一个完善的监控体系通常涵盖基础设施、中间件、应用、业务等多个层级,形成从底向上的全栈监控能力。
在现代云原生架构下,服务规模动辄成百上千,单纯依赖人工巡检已经不可行,必须借助自动化的监控平台来完成故障发现、告警通知、根因分析等工作。监控与链路追踪、日志系统共同构成了系统的可观测性体系,三者相辅相成,是保障分布式系统高可用的基石。
Zipkin 是一个基于 Java 开发的、开源的、分布式实时数据跟踪系统(Distributed Tracking System)。它采集有助于解决服务架构中延迟问题的实时数据。
Zipkin 主要功能是聚集来自各个异构系统的实时监控数据。分布式跟踪系统还有其他比较成熟的实现,例如:Naver 的 Pinpoint、Apache 的 HTrace、阿里的鹰眼 Tracing、京东的 Hydra、新浪的 Watchman,美团点评的 CAT,skywalking 等。
Zipkin 基于 Google Dapper 的论文设计而来,由 Twitter 公司开发贡献。
CAT(Central Application Tracking),是基于 Java 开发的分布式实时监控系统。CAT 在基础存储、高性能通信、大规模在线访问、服务治理、实时监控、容器化及集群智能调度等领域提供业界领先的、统一的解决方案。CAT 目前在美团的产品定位是应用层的统一监控组件,基本接入了美团所有核心应用,在中间件(RPC、数据库、缓存、MQ 等)框架中得到广泛应用,为各业务线提供系统的性能指标、健康状况、实时告警等。
监控工具、APM、CAT、Zipkin、SkyWalkingCAT、分布式监控、实时告警、链路追踪、美团Zipkin、分布式追踪、Dapper、链路分析、TwitterSkyWalking、APM、分布式追踪、微服务监控、服务网格Arthas、Java 诊断、在线排查、JVM、AlibabaSkyWalking 是一个基于 Java 开发的分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。
SkyWalking 是观察性分析平台和应用性能管理系统。
提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。
