为什么使用了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. webpack踩过的坑(总结)

    使用process.argv 获取命令行使用的参数 // 判断是否带production参数,production会压缩js var isprod = false; for (var i in pro ...

  2. Jquery的深度拷贝和深度克隆

    有人问,拷贝和克隆不都是“复制”的意思吗. 这位看官问的好,一般情况下是一样的,但在jquery中却有些不同.jqurey深度拷贝一般只js对象的复制,是$.extend()方法,jquery深度克隆 ...

  3. GreenOpenPaint的实现(三)添加标尺

    标尺对于图像处理程序,特别是需要精确测量的程序来说意义很大.这里进行了专门的研究. 基于现在已经引入的类和定义的变量,主要讲一讲如何调用. 1.添加放大缩小 void CGreenOpenPaintD ...

  4. vs显示代码缩略图

    1.工具 2.选项 3.文本编辑器 4.所有语言->滚动条

  5. HDU 4272 LianLianKan (状压DP+DFS)题解

    思路: 用状压DP+DFS遍历查找是否可行.假设一个数为x,那么他最远可以消去的点为x+9,因为x+1~x+4都能被他前面的点消去,所以我们将2进制的范围设为2^10,用0表示已经消去,1表示没有消去 ...

  6. root权限和sudo得到权限的区别

    参考: 知乎 命令前加sudo执行和用真正的root用户执行有什么区别?pansz的回答 root用户和sudo使用root权限的区别 变换用户身份为root的方法su 与 sudo root权限和s ...

  7. 论OI中最大值的选取

    为什么我的Floyd会输出负数啊? 为什么我的代码写对了却全都爆零了啊? 那么很可能是你的INF取大/小了! 那么inf到底应该取什么值呢? 首先,inf应该要比一般的题目中出现的数据要大,但是又不能 ...

  8. TCGA系列--GDCRNATools

    https://github.com/Jialab-UCR/GDCRNATools GDCRNATools - An R package for downloading, organizing, an ...

  9. requestWindowFeature()的应用

    android开发中经常会在setContentView(R.layout.XXX); 前设置requestWindowFeature(XXXX). 他的意思是需要软件全屏显示.自定义标题(使用按钮等 ...

  10. 递归--练习1--noi3089爬楼梯

    递归--练习1--noi3089爬楼梯 一.心得 根据输入,是要写连续输入多个值的程序 二.题目 3089:爬楼梯 总时间限制:  1000ms 内存限制:  65536kB 描述 树老师爬楼梯,他可 ...