• 公司介绍
  • 产品展厅
  • 公司相册
  • 资质证书
  • 新闻资讯
  • 人员计划
  • 服务网络
  • 联系我们
  • 您当前的位置:首页 > 服务网络

    it_worker365

    时间:2019-04-13 13:44:42  来源:本站  作者:

      请求到达服务器,应用容器在执行业务处理之前,先执行埋点逻辑,分配一个全局唯一调用链ID(TraceId),埋点逻辑将TraceId放在一个调用上下文对象里,该对象存储在ThreadLocal中。还有一个RpcId用于区分同一个调用链多个网络调用的发生顺序和嵌套层次关系。发起RPC调用后,首先从当前线程ThreadLocal获取上下文,底层RpcId序列号,可以采用多级序列号形式。返回响应对象之前,会把这次调用情况以及 TraceId、RpcId 都打印到它的访问日志之中,同时,会从ThreadLocal 清理掉调用上下文

      创造一些追踪标识符(tracingId,spanId,parentId),最终将一个request的流程树构建出来,各业务系统在彼此调用时,将特定的跟踪消息传递至zipkin,zipkin在收集到跟踪信息后将其聚合处理、存储、展示等,用户可通过web UI方便获得网络延迟、调用链路、系统依赖等等。

      Annotation(用途:用于定位一个request的开始和结束,cs/sr/ss/cr含有额外的信息,比如说时间点):

      cr:Client Received,表示客户端获取到服务端返回信息一个span的结束,当这个annotation被记录了,这个RPC也被认为完成了

      Span:一个请求(包含一组Annotation和BinaryAnnotation);它是基本工作单元,一次链路调用(可以是RPC,DB等没有特定的限制)创建一个span,通 过一个64位ID标识它。

      通过traceId(全局的跟踪ID,是跟踪的入口点,根据需求来决定在哪生成traceId)、spanId(请求跟踪ID,比如一次rpc等)和parentId(上一次 请求跟踪ID,用来将前后的请求串联起来),被收集到的span会汇聚成一个tree,从而提供出一个request的整体流程。

      在dubbo中引入zipkin是非常方便的,因为无非就是写filter,在请求处理前后发送日志数据,让zipkin生成调用链数据

    来顶一下
    推荐资讯
    相关文章
      无相关信息
    栏目更新
    栏目热门