为什么使用了httpclient,客户端没有向zipkin server发送日志?
因为我实在main方法中调用的,完事后这个线程就没了;httpclient用的还是异步的发送日志方式;所以没发日志。
 
但是现在卡主我的确实为什么只有client的信息,没有server信息!
应该还是进程被干掉的原因,因为我是用spring注入的方式没有问题!
下面截图示意一下zipkin的内容。本机调用10.4.120.77的web服务;下面这个图是远程77的web服务的brave没有放开的情况下的情况:
  
第一个get/是通过浏览器访问该web网站打出的日志;
 
第二个post则是在get访问内部方法的里面通过restTemplate.postForObject方法向另外一个web网站请求站点数据(http://10.4.120.77:8081/brave-rt/);因为另外一个Web站点关闭了zipkin(将zipkin的url设置为一个不可用地址),所以没有显示。
 
下面让77web服务brave正常向zipkin发送日志:
brave-rt-client的输出内容和上面的一样(都是通过浏览器出发servlet处理,所以内容一样);
同时第二个POST操作,有了变化,首先名称变成了“brave-rt”;其次点进去你会看到内容变得很全,整个调用链都出来;
第三条记录点开来看,只有backend操作了信息:
通过这两套数据的分析,可以得出结论:zipkin的链式数据分析是由各个节点独立通知zipkin服务器,有zipkin服务器汇聚整理而得来的;曾经我以为是下级调用会向上级反馈日志信息,看来不是,大家各自存各自的;所以会发生刚刚发生的操作行为日志并没有,而是要等一会;因为大家都是异步通知zipkin,所以只有等都搞完了才会有数据(zipkin内部应该会判断如果有缺失则数据不显示);
zipkin的brave发送日志应该有两种机制,一种是队列满了则发送,另外一个是如果在队列到了一定程度则发送;
同时第二个POST操作,有了变化,首先名称变成了“brave-rt”;其次点进去你会看到内容变得很全,整个调用链都出来;为什么?我推测zipkin处理机制(以后源码读完了再来确认一下),如果跨站点,则Server角色会把整个调用链(从上游调用到自己处理,只是上游和自己两层,不包括自己的下游)打印出来;
下面我们把调用链改一下第三个调用改为另外一台主机(和第一个服务放在一台主机上面)
第一个不看了,大同小异;
第二个如下,和之前的基本一样,把上游(client)和自己(server)链都打印出来:
  到了第三个,之前如果本机间访问,只会有一条ss和sr的日志,但是现在也是一条完整的上下游的调用无23 链路。
 
 
 
 

zipkin:调用链显示分析的更多相关文章

  1. dubbo+zipkin调用链监控(二)

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  2. dubbo+zipkin调用链监控

    分布式环境下,对于线上出现问题往往比单体应用要复杂的多,原因是前端的一个请求可能对应后端多个系统的多个请求,错综复杂. 对于快速问题定位,我们一般希望是这样的: 从下到下关键节点的日志,入参,出差,异 ...

  3. 调用链系列三、基于zipkin调用链封装starter实现springmvc、dubbo、restTemplate等实现全链路跟踪

    一.实现思路 1.过滤器实现思路 所有调用链数据都通过过滤器实现埋点并收集.同一条链共享一个traceId.每个节点有唯一的spanId. 2.共享传递方式 1.rpc调用:通过隐式传参.dubbo有 ...

  4. spring cloud 学习(8) - sleuth & zipkin 调用链跟踪

    业务复杂的微服务架构中,往往服务之间的调用关系比较难梳理,一次http请求中,可能涉及到多个服务的调用(eg: service A -> service B -> service C... ...

  5. Zipkin存储Sleuth信息实现调用链追踪的几种方法

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/alva_xu/article/detail ...

  6. 调用链系列一、Zipkin架构介绍、Springboot集承(springmvc,HttpClient)调用链跟踪、Zipkin UI详解

    1.Zipkin是什么 Zipkin分布式跟踪系统:它可以帮助收集时间数据,解决在microservice架构下的延迟问题:它管理这些数据的收集和查找:Zipkin的设计是基于谷歌的Google Da ...

  7. libevent2源码分析之五:关键的调用链

    用一个调用链来表示函数调用的流程,看起来更直观.根据上面的分析,总结了一些重要的调用链. 初始化 event_base_new event_base_new_with_config min_heap_ ...

  8. Spring Cloud Alibaba学习笔记(23) - 调用链监控工具Spring Cloud Sleuth + Zipkin

    随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求陷入性能瓶颈或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何 ...

  9. Spring Cloud Alibaba 实战(十三) - Sleuth调用链监控

    本文概要:大白话剖析调用链监控原理,然后学习Sleuth,Zipkin,然后将Sleuth整合Zipkin,最后学习Zipkin数据持久化(Elasticsearch)以及Zipkin依赖关系图 实战 ...

随机推荐

  1. C++ string和C风格字符串

    https://msdn.microsoft.com/en-us/library/syxtdd4f.aspx#basic_string__replace If you need to convert ...

  2. Labeled Faces in the Wild 人脸识别数据集

    http://blog.csdn.net/garfielder007/article/details/51480525 New (draft) survey paper: Labeled Faces ...

  3. linux内核分析第五周-分析system_call中断处理过程

    本实验目的:通过以一个简单的menu小程序,跟踪系统调用的过程,分析与总结系统调用的机制和三层进入的过程. 实验原理:系统调用处理过程与中断处理的机制 系统调用是通过软中断指令 INT 0x80 实现 ...

  4. Xilinx SD controller

    Features supported by driver Zynq All the HW/IP features are supported by driver ZynqMP All the HW/I ...

  5. MongoDB 默认写入关注保存数据丢失问题与源码简单分析

    MongoDB 默认写入关注可能保存数据丢失问题分析 问题描述: EDI服务进行优化,将原有MQ发送成功并且DB写入成功,两个条件都达成,响应接收订单数据成功,修改为只有有一个条件成功就响应接收数据成 ...

  6. git看不到别人创建的远程分支

    解决办法: $ git fetch //取回所有分支(branch)的更新.如果只想取回特定分支的更新,可以指定分支名,例:$ git fetch <远程主机名> <分支名> ...

  7. 定义 S4 泛型函数

    在前面的例子中,我们可以看出 S4 比 S3 更正式,因为 S4 类有类的正式定义.同样, S4 的泛型函数也更加正式.在一个关于形状的例子中,我们定义了一系列具有继承关系的 S4 类,只是继承关系的 ...

  8. redis缓存穿透、缓存击穿、缓存雪崩

    缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透. 解决办法: 预校验 在控 ...

  9. 【Docker】数据库动态授权组件在Kubernetes集群下的测试过程记录

    背景 我们都知道出于安全性考虑,生产环境的权限一般都是要做最小化控制,尤其是数据库的操作授权,更是重中之重. 博主所在公司使用的是Kubernetes(k8s)进行的集群容器管理,因为容器发布时的IP ...

  10. Cool Auto-Suggest 插件使用方法

    刚入职的时候公司主管曾经让我用Cool Auto-Suggest 插件写过后台管理页面内的自动填充及搜索功能. 其实这个插件的使用很简单,网上也有相应的翻译文档,但是明显的机翻看着无法忍受.我写一下使 ...