微服务-服务追踪系统

微服务-服务追踪系统

在一个庞大的微服务系统架构下,若是某一次服务请求出现了问题,那么咱们如何定位是哪台机器又或是哪一个接口出现了问题。git

这时候,咱们就须要服务追踪系统来查询。程序员

服务追踪的做用:

1.定位请求出错的位置github

2.优化系统调用瓶颈,能够分析每个接口的调用延时,从而优化相应的接口。网络

3.优化请求链路调用,在服务追踪系统中,咱们能够看到每一个接口调用另外一个接口的信息,查看在逐个调用中是否存在着不合理的跨区域的调用。架构

4.生成网络拓扑图,经过网络拓扑图,能够分析出整个RPC的架构和性能信息。app

5.透明传输数据,作A/B测试。分布式

注:什么是A/B测试?同时发布两个版本的内容供用户使用,调研这两个版本哪一个更受用户欢迎及采用哪一个版本。微服务

服务追踪系统的原理

最原始的是由Google发表的Dapper论文性能

核心理念是产生一个请求的完整调用链,经过一个在请求的第一层产生一个全局的ID,在整个请求过程当中传递,最后经过ID还原出整个的请求链路。测试

有名的服务追踪系统:Zipkin;鹰眼;MTrace。

三个基础概念:

traceId:用于表示某一个请求在全局的惟一ID。由请求在RPC调用网络中的第一层生成。

spanId:用于标识一次RPC调用在分布式请求中的位置,调用了哪台机器的哪一个接口。

annotation:业务自定义的埋点,上传在请求处理过程当中,须要后台记录的信息。

服务追踪系统架构

一. 数据采集层

在业务的代码中进行埋点,并将数据进行上报。

二. 数据处理

数据处理分为两类:实时计算需求,离线计算需求

1. 实时计算需求

通常采用Storm或者Spark Streaming进行流式处理方式进行实时的聚合加工,采用OLTP数据仓库(HBase)。

2. 离线数据处理

采用MapReduce或者Spark批处理程序计算,采用Hive存储。

三. 数据展现

两种方式:调用连路图,调用拓扑图。

 

追问:实时监控系统和服务追踪系统,这两个系统的相同点和区别?

两个系统均由数据采集、数据处理、数据展现三部分。

服务追踪系统是帮助程序员在查看快速定位请求出错在全局的位置,是哪一个接口出现问题。

实时监控系统是帮助程序员查看出错接口的具体数据是多少。

相关文章
相关标签/搜索