为什么使用了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. 20145311 《Java程序设计》第七周学习总结

    20145311 <Java程序设计>第七周学习总结 教材学习内容总结 第十二章 Lambda Lambda表达式会使程序更加地简洁,在平行设计的时候,能够进行并行处理. 第十三章 时间与 ...

  2. Hexo搭建 github.io 静态博客使用指南

    What? Hexo 是一个快速.简洁且高效的博客框架.可以使用markdown 解析成文章,在几秒内,即可利用靓丽的主题生成静态网页. Why? 笔记需要整理 How? github 创建 char ...

  3. C#中的静态构造函数

    https://msdn.microsoft.com/en-us/library/k9x6w0hc(v=vs.140).aspx A static constructor is used to ini ...

  4. Codeforces Round #390 (Div. 2) D. Fedor and coupons(区间最大交集+优先队列)

    http://codeforces.com/contest/754/problem/D 题意: 给定几组区间,找k组区间,使得它们的公共交集最大. 思路: 在k组区间中,它们的公共交集=k组区间中右端 ...

  5. BZOJ 1833 【ZJOI2010】 数字计数

    题目链接:数字计数 没啥好说的,裸裸的数位\(dp\). 先枚举当前是算数字\(x\)出现的次数,设\(f_{i,j}\)表示从高位往低位\(dp\),\(dp\)完了前\(i\)位之后\(x\)出现 ...

  6. python 进制转换

    print hex(),hex(-) #转换成十六进制 print oct(),oct(-) #转换成八进制 print bin(),bin(-) #转换成二进制 print int("字面 ...

  7. 上海仪电Azure Stack技术深入浅出系列1:谈Azure Stack在私有云/混合云生态中的定位

    2.2 Azure Stack Azure Stack到2017年7月才提供GA版本,但目前还是可以通过技术预览版了解该技术.Azure Stack本质上是核心Azure服务的一个私有实例. Micr ...

  8. JavaScript--语法2--语句结构

    JavaScript--语句结构 一.心得 判断的时候常量放左边java中switch只支持四种类型,javaScript是弱类型,所有的都支持. 显示方法: 77 // alert("x= ...

  9. HDU-3853-期望/dp/坑

    LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total Sub ...

  10. 今天廷鹏师弟来的java建议

    如下一段获取数据代码的问题: public Serializable getById(Serializable id) throws BaseBusinessException {  if (id = ...