调用链监控 - Tracing - APM
调用链监控原理和相关概念
微服务应用与单块应用完全不同,一个微服务系统少则有几十个微服务组成,多则可能有上百个服务。比如BAT级别的互联网公司,一般都超过上百个服务,服务之间的依赖关系错综复杂,如果没有有效的监控手段,那么出现问题很难快速排查,最终会导致业务损失。
在微服务监控领域,业界的实践证明,调用链监控 - tracing 是比较有效的手段,它不仅可以实时监控服务调用性能,也可以实时跟踪服务的依赖关系,出现问题的时候,通过调用链监控,可以帮助我们快速定位问题和排障,可以说微服务离不开调用链监控。
调用在分布式系统中的流程简述实例
调用链监控的核心原理并不复杂,下图简单描述的监控的原理和概念。
如图,假设有3个服务,service1, service2, service3. 他们之间是有调用关系的。
当外部请求进来的时候:
- 用户请求先到service1, service1调用redis缓存(红色小方块),redis返回service1数据。
- service1调用service2,service2调用mysql,mysql返回service2数据。
- service2调用service3, service3返回给service2
- service2返回给service1
- service1返回给用户