微服务监控zipkin+asp.net core

整体架构目录:ASP.NET Core分布式项目实战-目录

一、zipkin介绍

 zipkin是一种分布式跟踪系统,有助于收集微服务架构中的延迟问题所需要的时序数据(收集查找),收集微服务之间的调用情况,然后处理调用之间数据延迟等问题。

如下图:微服务调用情况深度。(官方文档图)

微服务监控zipkin+asp.net core

 

以及依赖图分析,会展示出微服务之间的调用关系。当然下图展示的是我案例中的图片

微服务监控zipkin+asp.net core

 

二、zipkin作用

 1、全链路追踪工具(查看依赖关系)

2、查看每个接口、每个service的执行速度(定位问题发生点或者寻找性能瓶颈)

zipkin包含:
         收集器(Collector):主要是收集微服务所产生的数据(收集器有:http、kafka、rabbitmq)
   UI(界面):主要是展示数据的界面
   Storage(存储):存储数据(es、mysql、内存、cassandra)
        in-memory:仅供测试
        JDBC(mysql):数据采集量很大,查询速度会比较慢。
        Cassandra:zipkin最初始内建的存储(扩展性好、schema灵活)
        (推荐)Elasticsearch:被用于大规模,数据量大的,存储形式json。
  API:查看/检索 数据的接口,主要用于WebUI中

 结构图:

微服务监控zipkin+asp.net core

 

流程解释:
1、transport作用:收集trace的services的spans,并将它们转化为zipkin common span
2、zipkin核心数据结构
Annotation:用于定位一个request的开始和结束,计算调用延迟。
cs:Client Start,表示客户端发起请求,一个span的开始
sr:Server Receive,表示服务端收到请求
ss:Server Send,表示服务端完成处理,并将结果发送给客户端
cr:Client Received,表示客户端获取到服务端返回信息

 

 

注意:时间点计算
sr-cs:网络延迟
ss-sr:逻辑处理时间
cr-cs:整个流程时间

 

三、asp.net core 部署zipkin 1、需要在每个微服务框架中加入zipkin分布式跟踪系统

此项目会新建两个项目一个是 demo1,一个是demo2

2、nuget包安装:

zipkin4net(追踪器)
zipkin4net.middleware.aspnetcore(aspnetcore 中间件)

微服务监控zipkin+asp.net core

3、项目中的 Startup.cs 里面Configure方法中注册中间件

微服务监控zipkin+asp.net core

 

 4、配置startup.cs之后还需要配置RPCTraceHandler

即在发送Get/Post请求的HttpClient中添加追踪处理者,至此 asp.net core部署完成。

微服务监控zipkin+asp.net core

 

 5、上面部署的的只是demo1 服务,因此同样的方式部署demo2项目。

 

6、现在docker部署zipkin

数据存储方式:内存(仅测试)
docker 命令: docker run -d -p 9411:9411 --name zipkin openzipkin/zipkin

 部署成功后 在浏览器中打开 ,这边我采用的是虚拟机,因此打开地址为 192.168.216.135:9411 

微服务监控zipkin+asp.net core

 

7、至此部署完成

我们在 asp.net core项目的控制其中写上调用demo2   api/values 的接口地址

追踪在zipkinUI 上面呈现如下:

图1、

微服务监控zipkin+asp.net core

图2、

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydwdz.html