您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
(avg什么意思)-avg变量的定义
数据,系统,报表(avg什么意思)-avg变量的定义
发布时间:2020-12-06加入收藏来源:互联网点击:
分布式架构正在颠覆企业信息化建设的IT架构。不管是早期的SOA体系,还是当前正在流程的微服务和容器化等,都是从分布式架构角度提升整体系统的吞吐和容错能力。另一方面,分布式架构的发展也带来了监控难度加大。以往的基于日志、性能指标的传统部署架构的监控系统已难以跟上系统高速发展的步伐。
因此,在谈及微服务基础组件时,都会重点提及调用链追踪和监控组件。当前,常见的调用链组件包括Skywalking、Zipkin、Cat和Pinpoint等。
调用链跟踪系统的发展历程
分布式服务跟踪是在整个分布式系统中实现跟踪某用户请求的过程,包括对相关数据的采集、传输、存储、分析和可视化,完成捕获这部分跟踪让开发和运维构建用户交互过程的整个请求调用链的可视化视图,这是一个调试及监控微服务的核心工具。 2010年谷歌发表了其内部使用的分布式跟踪系统Dapper的论文(http://static.googleusercontent.com/media/research.google.com/zh-CN/archive/papers/dapper-2010-1.pdf,译文地址:http://bigbully.github.io/Dapper-translation/),讲述了Dapper在谷歌内部两年的演变和设计、运维经验。借助于Dapper 理念,开发者仅需把 Trace 组件嵌入基础通用库中,就可正常运行,而应用层开发人员则无需要关心具体 的Trace 组件实现和集成方式,达到了以应用层透明的方式嵌入至各个模块的目的。
当前开源流行的调用链系统的起源为两大类:eBay和Google。Cat发展的源头为eBay的CAL,其他的几个系统均源自2010年google Dapper论文,包括Twitter开源产品Zipkin、携程的CTrace、韩国Naver Pinpoint、UBer的Jaeger和华为Skywalking等。另外,淘宝的鹰眼、京东的Hydra,新浪的Watchman都是不错的链路跟踪和监控系统,但未开源。
调用链跟踪系统(一):Zipkin介绍
把Zipkin放在最开始介绍,是因为当前Spring Cloud Sleth与Zipkin结合非常好,安装应用起来非常方便,甚至不需要单独进行安装,在Spring Cloud为Finchley版本时,如果只需要默认的实现,则不需要自己构建Zipkin Server了,只需要下载jar即可,当前许多公司都在选择使用Zipkin。
Zipkin 是一个由Twitter公司开发并开源的分布式的跟踪系统,每个服务向zipkin报告计时数据,zipkin会根据调用关系通过Zipkin UI生成依赖关系图。
架构概述
追踪器驻留在应用程序里,并记录发生操作的时间和元数据。这些经常装配在库上,所以对用户来说是透明的。例如,一个已被装配过的 Web 服务器,会在接收请求和发送响应时进行记录。收集的追踪数据叫做Span(跨度)。
生产环境中的装配器应该是安全并且低负载的。因此,带内(in-band)只传输ID,并告诉接收器仍有一个追踪在处理。完成的跨度在带外(out-of-band)汇报给 Zipkin,如同应用程序异步汇报指标。
举例,当追踪一个操作的时候,该操作对外发送了一个 HTTP 请求,那么,为了传输 ID 就会添加一些额外的头部信息。头部信息并不是用于发送像是操作明这样的详细信息的。
装配应用中用于向 Zipkin 发送数据的组件叫做 Reporter。Reporter 通过 Transport发送追踪数据到 Zipkin 的 Collector,Collector 持久化数据到 Storage 中。之后,API 从 Storage 把查询到的数据提供给 UI。
要理解这张图,需要了解一下Zipkin的几个核心概念:
Reporter在某个应用中安插的用于发送数据给Zipkin的组件称为Report,目的就是用于追踪数据收集
Span微服务中调用一个组件时,从发出请求开始到被响应的过程会持续一段时间,将这段跨度称为Span。Span是一个基本工作单元,如,在一个新建的span中发送一个RPC等同于发送一个回应请求给RPC,span通过一个64位ID的唯一标识,trace以另一个64位ID表示,span还有其他数据信息,比如摘要、时间戳事件、关键值注释(tags)、span的ID、以及进度ID(通常是IP地址)。
span在不断地启动和停止,同时记录了时间信息,当创建了一个span,必须在未来的某个时刻停止它。
Trace一系列spans组成的一个树状结构,如果正在执行一个分布式大数据工程,可能需要创建一个trace。从客户端(Client)发出请求到完成请求处理,中间会经历一个调用链,将这整个过程称为一个追踪(Trace)。一个Trace可能包含多个Span,反之每个Span都有一个上级的Trace。
Transport一种数据传输的方式,装配库发送的跨度必须由装配的服务传输到 Collector。 有三种主要的传输类型:HTTP、Scribe 和 Kafka。
Zipkin共有如下四个组件构成 :
collectorstoragesearchweb UIZipkin Collector
一旦追踪数据抵达 Zipkin Collector 守护进程,Zipkin Collector 为了查询,会对其进行校验、存储和索引。
Storage
Zipkin 最初是构建在将数据存储在 Cassandra 中,因为 Cassandra 易跨站,支持灵活的 schema,并且在Twitter内部被大规模使用。在 Cassandra 之外,原生支持 ElasticSearch 和 MySQL。可作为第三方扩展提供给其它后端。
Zipkin 查询服务
一旦数据被存储索引,就需要一种方式提取它。查询守护进程提供了一个简单的 JSON API 查询和获取追踪数据的方法。API 的主要消费者就是 Web UI。
Web UI
创建了一个用户图形界面为追踪数据提供了一个漂亮的视图。Web UI 提供了基于服务、时间和标记(annotation)查看追踪数据的方法。注意:UI 没有内置的身份认证功能。
Spring cloud提供了spring-cloud-sleuth-zipkin来方便集成zipkin实现(指的是Zipkin Client,而不是Zipkin服务器),该jar包可以通过spring-cloud-starter-zipkin依赖来引入。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |