—1—为什么需要链路追踪
在学习分布式链路跟踪之前,我们需要了解这项技术的背景,以及它能帮助我们解决哪些难题。
说到分布式链路跟踪,首先要提到微服务。相信很多人都接触过微服务。我们来回顾一下这里的基本概念。
微服务是一种开发软件的架构和组织方法,其重点是通过API实现服务之间的解耦和通信。使应用程序更容易扩展,开发速度更快,从而加速新功能的推出。
微服务的演变——亚马逊云
加速研发快速迭代,让微服务在业务驱动的互联网领域全面普及,引领潮流。但也带来了新的问题:当生产系统面临高并发或解耦成大量微服务时,以前可以轻松实现的故障监控、预警和定位变得困难。
我给大家讲讲搜索系统研发的经验,结合场景(曾经这个系统要抵抗每天10亿PV,5000万UV的高并发)。
机票搜索演示图
比如搜索飞机票的行为,其实就是向数百个查询服务器进行查询,而这个查询会被发送到多个微服务系统,这些微服务系统用来处理航班信息、查询是否有舱位、机票价格、机场关键词匹配、查找图片资源等等。每个子系统的查询的最终汇总结果将在搜索结果页面上汇总。
用户在查询后进行这样的“全局搜索”。任何一个子系统变慢,都会导致最终搜索变慢,用户体验会很差。
看到这里,你可能会想,体验差我们做搜索优化不就