Istio微服务的分布式跟踪

出了阿里内部的鹰眼,最近也出来这个也不错
原文地址:http://www.jdon.com/48932
最近,IBM,Google和Lyft宣布推出Istio,这是一个开放源代码平台,帮助管理微服务分布式应用程序。Istio背后的关键原则之一是在微服务基础架构上提供统一的可观察性,而不需要特殊的工具。模块化的优点在软件工程中是众所周知的; 然而,包含大量微服务器的分布式应用程序对调试和故障排除提出了额外的挑战,特别是随着这些组件数量的增长以及它们的相互关系变得更加复杂以后。长期以来,日志和指标测量(metrics)一直是分析这些应用程序的行为并进行调试的有用手段。不幸的是,从个别微服务收集的日志和测量指标并不能提供关于整个应用程序行为的整体视图,因而就不足以揭示造成许多问题和错误的根本原因。假设问题是应用程序突然开始变慢,在试图解决这个问题时,可能会提出以下问题:1. 如何识别出问题根源的组件?2. 微服务之间的所有互动是什么?3. 与故障有关的哪些相互作用能够观察到?4. 哪个微服务是性能瓶颈?5. 微服务之间有什么意想不到的相互作用吗?显然,查看每个微服务器的日志和指标将成为一个噩梦。Istio如何帮助调试微服务性能?Istio服务网格的核心是Envoy,这是由Lyft设计,宣布和推广的开源L7代理和通信总线。在Istio中,每个微服务都与Envoy实例并置,该实例负责处理所有传入和传出的网络流量。因此,实际上,所有Envoy实例一起共同形成通信导管,微服务通过此通信导管彼此相互作用; 因此,每个Envoy实例都可以参与监控所有的服务间API调用,并记录每个呼叫所需的时间以及它是否成功完成。在Istio运行工作期间,我们决定利用Envo的上述观察能力,协助开发人员进行调试和故障排除。Envoy已经支持分布式跟踪的商业解决方案; 我们的主要目标是让开发人员能够清楚地看到所有微服务之间所有交互的大图。在Envoy中,使用Zipkin协助进行日志跟踪:每当微服务进行外部调用时,Envoy启动一个新的跨度span。一个跨度代表一对微服务器之间的完全交互,从请求者(客户端)发出请求直到接收到另一方(服务器)的响应为止。在请求客户端运行的Envoy会开始一个跨度,并将转发请求的时间记录在服务器端的Envoy上,而这又意味着跨度正在进行,并记录了请求被接收的时间。当微服务完成处理请求后,相应的Envoy会记录时间,并将响应发送给请求方。然后,在客户端Envoy会察觉到一个跨度已经完成,Envoy会记录收到响应的时间并计算跨度持续时间。假设只有跨度的创建者(客户端/请求者)单方面计算跨度持续时间,这样值是不完整的。参与此次互动的Envoy都只是部分了解跨度持续时间:客户端Envoy知道何时开始请求并收到响应; 另一方面,服务器Envoy知道自己何时收到请求并发出响应。每个Envoy将自己的跨度视图发布到Zipkin,然后将合并所有时间信息。因此,除了知道所谓的微服务为服务请求所需的时间之外,Zipkin还将同步所有这些时间信息,从而知道整个网络中请求和响应的时间要多长时间。当服务于一个请求时,微服务可能需要调用另一个微服务,从而导致因果关联的跨度的创建。具有相同根跨度的所有跨度形成痕迹trace。因此,需要跟踪捕获一个根请求所需的整个因果关联请求链。这些可通过Zipkin UI可快速查看。具体如何实现可见原文:Distributed tracing for cloud-native applications

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,131评论 19 139
  • 1. 微服务架构介绍 1.1 什么是微服务架构? 形像一点来说,微服务架构就像搭积木,每个微服务都是一个零件,并使...
    静修佛缘阅读 6,709评论 0 39
  • Service Mesh新秀,初出茅庐便声势浩荡,前有Google,IBM和Lyft倾情奉献,后有业界大佬俯首膜拜...
    datazhen阅读 5,813评论 1 31
  • 摘要:本文中,我们将进一步理解微服务架构的核心要点和实现原理,为读者的实践提供微服务的设计模式,以期让微服务在读者...
    Java架构师Carl阅读 5,880评论 0 20
  • 大理曾经那么火,要不要来看看呢? 是不是对生活不太满意,很久没有笑过又不知为何,既然不快乐又不喜欢这里,不如一路向...
    xiu二丫阅读 501评论 0 3